我创建了一个文件file.txt,然后使用默认文本将我的提交添加到主分支
"-----Text--------"
存储库中的另一位开发人员MrA克隆了源代码并编辑了他的工作:
"-----Text--------"
Line added by MrA;
MrA提交到服务器中的远程存储库。
与此同时,MrB也修改了同样的文件
"-----Text--------"
Line added by MrB;
当MrA承诺没有问题,因为他之前没有其他变化。
但是当MrB想要提交时,它有一条消息错误,说有冲突。当MrB试图拉动时,他会收到一条错误消息,提示您移动file.txt或存储它以合并内容。
我该怎么做才能解决这个冲突?
答案 0 :(得分:2)
MrA和MrB都编辑了文件的相同部分,因此合并冲突。
我猜你在拉动时收到了这条消息:
error: Your local changes to the following files would be overwritten by merge:
file.txt
Please, commit your changes or stash them before you can merge.
Aborting
git commit
。这一步不应该失败。虽然他可以藏匿,但我不推荐它。git pull
。这将导致合并冲突,如预期的那样。git mergetool
调出GUI以帮助合并。或者,只需打开文件并手动编辑它即可。 Git使用特殊语法来表示冲突的位置。请参阅branching and merging上的我的链接。git add
。git commit
,现在您已完成解析合并。对于git stash
,这将保存所有已修改的跟踪文件和暂存的更改。它实质上使您的文本文件的副本不被修改。它存储您在内部进行的更改,但不提交。所以当你拉,没有冲突。但是,正如@nneonneo指出的那样,当您尝试使用git stash pop
恢复更改时,您将收到冲突。我不推荐这种方法。