Git无法合并

问题描述:

我创建了一个名为tmp的分支,进行了一些提交,现在当我尝试合并时失败。当我输入git branch -avvv我看到下面的Git无法合并

master    f439a52 [origin/master] updated footer formatting 
* tmp     acc5818 added analytics and logos 
remotes/origin/master f439a52 updated footer formatting 

然后我检查了主,试图合并tmp,但是我有一大堆的错误,如CONFLICT (content): Merge conflict in ....

的我试图再次检查TMP出来,但随后它说Automatic merge failed; fix conflicts and then commit the result.我不知道冲突是什么,所以我不知道如何解决它们。我想保留所有在tmp分支中创建的新增内容。我输入git reset --hard并切换回tmp。然后我删除了主人,创建了一个新的主分支,并尝试合并tmp,但同样的事情又发生了。

+0

嗯..'git'并不总是知道如何与触摸一个文件的同一行的两个分支的变更合并。你需要解决它们,使用'git mergetool'并从tmp或master分支中选择要使用哪一行。之后,确保代码编译并运行测试等。 –

当你做一个 git merge它会实际修改有冲突的文件,并告诉你有什么区别。您必须手动编辑有冲突的文件,然后提交这些更改。

<<<<<<< 
Changes made on the branch that is being merged into. In most cases, 
this is the branch that I have currently checked out (i.e. HEAD). 
||||||| 
The common ancestor version. 
======= 
Changes made on the branch that is being merged in. This is often a 
feature/topic branch. 
>>>>>>> 
+0

我打开了一个文件,看到类似这样的内容。我看到一堆标有HEAD和tmp的东西。我应该删除还是添加代码?我真的不知道问题出在哪里(或者说git实际上是如何运行并跟踪更改的) – user3199663

+0

Head将来自您正在合并的主分支。下半部分将用于你合并的分支。如果你只想从tmp的代码。删除Head部分和合并生成的'>>>'。您必须决定哪些代码是正确的代码。 – BenDavidJamin

+1

请注意,只有在将'merge.conflictstyle'设置为'diff3'时,'||| ...'和common-ancestor部分才包含在内。 – torek