我的朋友和我正在研究同一个项目,我们正在使用Github。 我正在考虑为我们每个人创建分支,然后合并到主人。
我刚做了一个实验,我同时创建了2个分支,然后修改了两个分支中的同一个文件。然后我尝试合并到主人。第一次合并是成功的,但第二次合并没有。它说存在冲突。
这是问题所在。假设我的朋友和我同时克隆了回购,我们在项目上工作,我们可能会在同一个文件和不同的文件中进行更改。怎么可能最终合并我们的分支?
还是有另一种解决方案?
答案 0 :(得分:1)
冲突是非常普遍的,很可能会在你的项目中与他人合作时出现,没有他们的景观。
当它发生时,第二个人(有冲突的人)必须处理它们。有很多方法可以做到,但我认为更简单的方法是:
来自终端和您想要结果的分支(在本例中为master),执行git merge [branch-name]
现在,终端会说有冲突。执行git status
以查看冲突所在的文件。
访问这些文件并按照您的需要进行编辑(github会在中间保留两个有>>>>>>>
的冲突代码,只需确保您要维护的内容。
(确保您的代码按照您希望的方式运行),执行git merge --continue
ps:有关详细信息,请参阅:https://git-scm.com/docs/git-merge
答案 1 :(得分:0)
当出现冲突时,您必须解决它。 为此,请查看错误中提到的文件,例如:
Auto-merging www/index.html
CONFLICT (content): Merge conflict in www/index.html
Automatic merge failed; fix conflicts and then commit the result.
该文件应如下所示:
<html>
<body>
<<<<<<< HEAD
<h1>Hello world!</h1>
=======
<h1>Hello StackOverflow!</h1>
>>>>>>> master
</body>
</html>
然后,您可以对解决冲突的文件进行更改。
<html>
<body>
<h1>Hello StackOverflow!</h1>
</body>
</html>
然后,您可以进行包含该文件的提交。
另外在SO上查看这个问题,特别是如果你想使用带有GUI的工具:What's the best visual merge tool for Git?。