git提交代码冲突解决案例

       代码提交的时候常常会发生冲突的情况,尤其是协同开发的情况下。比如我们共同维护一个工程模式模块,大家都把测试项往上提交,很多时候会涉及到一些公共接口文件以及资源文件提交,不可避免的会发生这些文件提交冲突的情况。

       本文主要是在ubuntu系统下,使用repo以及git提交代码时发生冲突的案例,刚开始对git不够熟悉会觉得很麻烦,很怕冲突的情况发生,因为我大概只会用git pull, git add, git commit, git push。下面介绍一种简单的方法解决冲突:

       别的同事已经提交了代码,或者你发扬风格谦让下晚点提交代码偷笑。但是,你已经使用git push过了,那么,这个时候使用gitk调出以下界面:

git提交代码冲突解决案例_第1张图片

第一步:选中上最近一条有效提交记录,右键选择“reset XXX branch to here”;

第二步:在弹出的Confirm reset界面,选择“Mixed:Leave working tree untouched, reset index”;

第三步:输入git reset --hard HEAD,然后更新到最新代码git pull --rebase;

第四步:重新合入代码并按步骤git add, git commit, git push;

第五步:重新发起走读并提交代码。


值得一提的是,如果连第一条的“reset XXX branch to here”都未出现,怎么办?这种情况笔者也碰到过,可能是因为你已经commit过了,下面的步骤请参考下:

第一步:先git log查看一下当前的提交记录,找到你想恢复到哪条记录,例如你之前提交过最新的记录为倒数第二条;

第二步:git reset --hard HEAD^ 其中' ^ '这个符号表示上一次提交,‘ ^^ ’依此类推就是上上次提交;

第三步:gitk,因为此时已经reset到上一次有效记录中了,这个时候就会出现上一段中提到的“reset XXX branch to here”;

然后参考上一段文字中提到的步骤。

以上仅供参考,笔者也是在多次提交失败的痛苦经历中反省,参考了《Git Community Book》才有点心得,仅做交流和笔记。

你可能感兴趣的:(code,git,Repo,conflict)