如何在Git中强制将tmp分支状态应用到dev分支并保留dev历史
实现方法
直接通过以下几步就能快速达成目标,无需繁琐的撤销、cherry pick 和 squash 操作:
- 确认当前处于
dev分支(不确定的话执行git checkout dev切换) - 将
tmp分支的所有文件状态同步到当前工作区和暂存区:
这条命令会把git checkout tmp -- .tmp分支下的所有文件(包括新增、修改、删除的文件)完全覆盖到dev分支的工作区和暂存区,让当前目录状态和tmp分支完全一致。 - 提交这个状态变更为新的提交
D:git commit -m "同步tmp分支状态作为提交D"
执行完成后,dev分支的提交结构就会变成A <-- B1 <-- B2 <-- B <-- D,其中D的仓库状态和tmp分支完全一致。
注意事项
- 如果当前
dev分支有未提交的本地变更,先执行git stash暂存,避免覆盖丢失;后续可通过git stash pop恢复(若有需要)。 - 如果存在
tmp分支没有的未跟踪文件,git checkout tmp -- .不会自动删除这些文件,若要完全和tmp状态一致,可先执行git clean -fd清理未跟踪文件和目录(执行前确认这些文件无需保留),再执行git checkout tmp -- .。
内容的提问来源于stack exchange,提问作者AJP
相关产品推荐
相关产品推荐

