[英]Force merging in a branch in git
目前,我在foo
分支上,由于合并原因复杂,我想合并分支bar
更改,git显然认为这是foo
的一部分。
不幸的是,结果是如果我跑步
git checkout foo
git merge bar
尽管分支bar
有一些更改要进入分支foo
,但我将得到消息Already up-to-date
的消息。
我考虑了两种可能的解决方案。
一种可能是简单地检出bar
,将其复制到其他地方,检出foo
,然后手动执行合并。 这将起作用,但是如果存在这样的问题,我宁愿选择一种较少手动的解决方案。
另一种可能性是进行反向合并,即将foo
合并为bar
。 不幸的是,当我尝试执行此操作时,git的自动合并功能会完全擦除我要保留的bar
更改,并用foo
更改替换它们,这是不希望的。
如何强制git假装bar
在将来而foo
在过去,以允许bar
合并到foo
?
这不是一个聪明的解决方案,但应该可以:
首轮
git diff -p foo bar <files_you_want_to_merge> > patch
生成路径文件并在必要时对其进行编辑(例如,删除foo
比bar
更新的那些文件)。
然后跑
git checkout foo
git apply patch
将'伪合并' bar
到foo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.