在这种情况下如何避免这么多合并冲突?

How to avoid so many merge conflicts in this situation?

我知道当有 "competing" 次提交时会出现合并冲突。在只有一个 repo 分支,并且有两个贡献者,都具有写访问权限的情况下,我想当第二个提交试图被推送 "over" 第一个涉及公共文件时,合并冲突就实现了线。

我们如何避免这种情况?因为我和我的合作者很少编辑同一个文件,所以我建议他

git pull origin master 

在他开始做任何事情之前。但是,他却报了这个错误:

error: You have not concluded your merge (MERGE_HEAD exists)

我问是因为大多数合并冲突的解释都涉及对分支和拉取请求的呼吁,可能没有必要提及这些来获得解释。

根据github, 当您合并具有竞争提交的分支时会发生合并冲突,并且 Git 需要您的帮助来决定将哪些更改合并到最终合并中。

Git往往可以解决分支间的差异,自动合并。通常,更改在不同的行中,甚至在不同的文件中,这使得合并对于计算机来说很容易理解。但是,有时会有竞争性更改 Git 无法在没有您帮助的情况下解决。通常,合并冲突发生在人们对同一文件的同一行进行不同更改时,或者当一个人编辑一个文件而另一个人删除同一文件时。

在您的情况下,一个回购分支和两个或更多贡献者必须推送他们的提交。在我们的初创公司中,我们也有相同的快速迭代方法。 这里的做法是这样的-

  1. 确保你们都有干净的分支来启动。
  2. 每当有人必须推送其提交时,首先 stash 他们的更改(如果存在)。
  3. 然后 git pull --rebase 这使用了变基合并策略。 (此步骤将确保不会出现不必要的冲突,只需执行 git pull 将 pull 更改和 merge 与 rebase pullmerge 发生。
  4. 然后用 git push 推送更改。

当有人在其他人之前推送提交时不再有冲突。