在这种情况下如何避免这么多合并冲突?
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 无法在没有您帮助的情况下解决。通常,合并冲突发生在人们对同一文件的同一行进行不同更改时,或者当一个人编辑一个文件而另一个人删除同一文件时。
在您的情况下,一个回购分支和两个或更多贡献者必须推送他们的提交。在我们的初创公司中,我们也有相同的快速迭代方法。
这里的做法是这样的-
- 确保你们都有干净的分支来启动。
- 每当有人必须推送其提交时,首先
stash
他们的更改(如果存在)。
- 然后
git pull --rebase
这使用了变基合并策略。 (此步骤将确保不会出现不必要的冲突,只需执行 git pull 将 pull
更改和 merge
与 rebase pull
和 merge
发生。
- 然后用
git push
推送更改。
当有人在其他人之前推送提交时不再有冲突。
我知道当有 "competing" 次提交时会出现合并冲突。在只有一个 repo 分支,并且有两个贡献者,都具有写访问权限的情况下,我想当第二个提交试图被推送 "over" 第一个涉及公共文件时,合并冲突就实现了线。
我们如何避免这种情况?因为我和我的合作者很少编辑同一个文件,所以我建议他
git pull origin master
在他开始做任何事情之前。但是,他却报了这个错误:
error: You have not concluded your merge (MERGE_HEAD exists)
我问是因为大多数合并冲突的解释都涉及对分支和拉取请求的呼吁,可能没有必要提及这些来获得解释。
根据github, 当您合并具有竞争提交的分支时会发生合并冲突,并且 Git 需要您的帮助来决定将哪些更改合并到最终合并中。
Git往往可以解决分支间的差异,自动合并。通常,更改在不同的行中,甚至在不同的文件中,这使得合并对于计算机来说很容易理解。但是,有时会有竞争性更改 Git 无法在没有您帮助的情况下解决。通常,合并冲突发生在人们对同一文件的同一行进行不同更改时,或者当一个人编辑一个文件而另一个人删除同一文件时。
在您的情况下,一个回购分支和两个或更多贡献者必须推送他们的提交。在我们的初创公司中,我们也有相同的快速迭代方法。 这里的做法是这样的-
- 确保你们都有干净的分支来启动。
- 每当有人必须推送其提交时,首先
stash
他们的更改(如果存在)。 - 然后
git pull --rebase
这使用了变基合并策略。 (此步骤将确保不会出现不必要的冲突,只需执行 git pull 将pull
更改和merge
与 rebasepull
和merge
发生。 - 然后用
git push
推送更改。
当有人在其他人之前推送提交时不再有冲突。