我的分支(B)继承自Master(M)。由于时间已经过去,M和B已经发散,但是B仅修改树中的独占文件夹(f)。
目标是保持B与M同步。我理解它需要解决文件夹(f)中的冲突,但是有一种方法可以简化这一点,以便对于非f的所有内容,在重新定位时始终使用master ?
我正在试图解决我绝对没有修改过的文件夹的冲突,并且想要吸收M的内容。
提示?
答案 0 :(得分:0)
对于不在目录(文件夹)-s theirs
中的文件,您想要的是f
。不幸的是,git首先没有-s theirs
,更不用说限制为f
了。
然而,一切都没有丢失,并且通过一些工作(例如shell脚本),您可以自动执行大部分操作,因为git 有git checkout
。
在重新定位时(即,挑选提交将其复制到新基础),每当git因冲突而停止时,您只需git checkout <rev> -- <path>
就任何有冲突的<path>
。选择与其文件版本相对应的<rev>
(由于rebase反转透视的方式,只是HEAD
版本;或者您可以使用:2:<path>
尽管我没有&# 39;我自己试过这个)。这相当于使用-s theirs
(如果存在),因为它使用相关文件的版本填充索引条目。这意味着您甚至不必git add
结果:它只是解决冲突。
当然,请确保不要将其应用于目录<path>
中的任何f
。根据需要手动解决。
完成后,恢复rebase并让git完成其工作,直到你遇到下一次挑选冲突。