当使用 git diff other_branch
命令显示差异,而 git merge other_branch
命令却无法完成合并时,我被难住了。如何将那些“丢失”的代码合并到我的分支my_branch
中呢?
这个SO回答描述了一个类似于我遇到的情况。
o---A---B---C-------G my_branch
\ \ /
--*D*---E---F other_branch
当我执行操作时,令人惊讶的是 D 中的更改并没有自动合并到 my_branch
中。
git checkout my_branch
git merge other_branch
将 F 引入到 G 中
当然,我可以像这样手动创建补丁并将其应用于my_branch
:
git diff other_branch my_branch > patchfile
git checkout my_branch
patch -p1 < patchfile
但我希望做得正确,不要弄乱git日志。使用补丁方法,git会将D的更改和我的最新补丁记录为彼此独立发生的(代码变动)。我想简化git log
并确保其他人在执行git merge my_branch
时不会发生意外问题(悄然而逐渐地)。
my_branch
合并到other_branch
了吗?这样可能会解决差异。如果在my_branch
中有一些提交被还原,但在other_branch
中没有,那么你就会陷入这种情况。 - iltempomy_branch
中的任何更改,但很可能是因为在检出和编辑以及提交交错的情况下,在 sublime(文本编辑器)中保存时发生了。我需要对所有这些更加小心谨慎。 - hobs