多次从Master合并后发生冲突

Conflicts after merge from Master multiple times

我是 Git 和 GitHub 的新手,并试图为一个项目做出贡献,所以我创建了一个分支。该项目包含大量包含文件的文件夹,我唯一做的就是 添加两个文件夹 ,其中包含一些文件,然后 修改一个文件 .一段时间后,我想跟上原来的主人并按照 https://help.github.com/articles/syncing-a-fork/ 中的建议从上游合并 - 所以我做了 git merge upstream/master。这为我的叉子的主人带来了很多变化。

现在,几个月后我决定再次同步我的分叉并再次执行 git merge upstream/master。这给我带来了大约 10 个冲突,这些冲突都在文件中,我自己并没有触及。当然我可以尝试手动合并它们,但我想了解发生了什么,这样我就不会破坏其他人的工作。

问题:

如果有帮助,下面是我说的叉子:https://github.com/0815fox/DefinitelyTyped

  • 可能原始存储库已重新设置基准,或者您的本地存储库已更改,您需要执行提取和硬重置才能恢复同步。

  • 您不太可能在不知不觉中这样做了。这通常是不可能的,我能理解的唯一方法是通过重置回第一次提交和反向 cherry pick 一次提交一个来创建一个裸分支。这不是变基所做的。 Rebase 可用于将提交压缩在一起,并将新提交移到上游分支上的祖先提交后面以进行快速前向合并。

您可以使用 git 日志检查所有分支的合并路径。

git log --oneline --graph --decorate --all

如果您对文件中特定行的生成时间感兴趣,例如在调查冲突时,请使用 git blame。

git blame -- filename

我建议您在完成调查后进行修复,即根据您的更改创建一个新分支,重置您的上游分支,然后挑选您的提交范围。

git checkout -b mybranch
git checkout master
git reset --hard origin/master
git cherry-pick ^your1stSHA..yourLastSHA