2013-01-05 253 views
0

可能重复:
Trouble merging with Git如何解决git合并冲突?

我下载了一个混帐回购协议作了一些修改(删除一些文件),然后COMMITED它。然后我做了git checkout -b“新分支”。这里我没有删除这些文件,但是我做了一些修改并提交了它。现在我回到我的主分支,并做new_branch_i_created一个git合并而是说:

fatal: 'merge' is not possible because you have unmerged files. 
Please, fix them up in the work tree, and then use 'git add/rm <file>' as 
appropriate to mark resolution and make a commit, or use 'git commit -a'. 

我在做什么错?

如果我尝试从我的主分支签新的分支,它说:

GDCatalog/.classpath: needs merge 
GDCatalog/src/com/cyrilmottier/android/gdcatalog/CatalogActivity.java: needs merge 
GDCatalog/src/com/cyrilmottier/android/gdcatalog/PagedViewActivity.java: needs merge 
GreenDroid-GoogleAPIs/.classpath: needs merge 
GreenDroid/.classpath: needs merge 
GreenDroid/src/greendroid/widget/PagedView.java: needs merge 
error: you need to resolve your current index first 
+0

如何解决这些错误?我运行什么命令来合并第二个布尔与主分支 – user1667307

+0

问题:在尝试执行'git merge'之前,最后一个命令是什么?问题未提交的更改会阻止合并或合并期间的合并冲突(例如,存在'.git/MERGE_HEAD')? –

回答

2

从git的错误消息说明了一切。您在提交合并提交之前需要解决两个分支之间的未合并更改。这些合并冲突发生是因为该文件已在两个分支中进行了修改。

要解决此问题,您需要编辑冲突的文件。对于每个文件,您必须解决合并。冲突将被<<<<<<<<<<<,===========>>>>>>>>>>标记包围。你如何解决它们将取决于变化(你可能想保留你的修改,在远程分支的变化或两者的组合)。

一旦你解决了所有的冲突,那么你必须为每个文件做git add。然后git commit。预填充的提交消息将指示这是合并提交,并且解决了一些冲突。你可能不需要编辑它,除非你的编码风格要求你的提交信息有特定的格式。

因此,要总结,你必须做的:

$ emacs GDCatalog/.classpath 
... resolve conflict ... 
$ git add GDCatalog/.classpath 
... do the same for all other files ... 
$ git commit