http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html
http://hi.baidu.com/jqxw4444/item/f1125cab549dc9278919d3a9
当2个branch都修改了同一个文件的同一部分时,这时,就会发生冲突,git的自动合并就会失败,这时,使用git status会看到
test.html: needs merge
需要手工合并冲突后,git add一下,表明冲突修改完了
然后,再git commit即可
解决合并中的冲突
如果执行自动合并没有成功的话,git会在索引和工作树里设置一个特殊的状态,提示你如何解决合并中出现的冲突。
有冲突(conflicts)的文件会保存在索引中,除非你解决了问题并且更新了索引,否则执行git commit都会失败:
$ git commit
file.txt: needs merge
如果执行git status会显示这些文件没有合并(unmerged),这些有冲突的文件里面会添加像下面的冲突标识符:
<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
你所需要的做是就是编辑解决冲突,(接着把冲突标识符删掉),再执行下面的命令:
$ git add file.txt (一定要先add!!)
$ git commit
注意:提交注释里已经有一些关于合并的信息了,通常是用这些默认信息,但是你可以添加一些你想要的注释。
上面这些就是你要做一个简单合并所要知道的,但是git提供更多的一些信息来帮助解决冲突。
如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard git pull
如果想撤销上次的commit
git reset –hard commit_id
撤销未提交的修改
git checkout test/index.php