git冲突解决

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

posted @ 2014-06-16 16:18  peterpanzsy  阅读(3287)  评论(0编辑  收藏  举报