本文标签: git
最近在维护一套代码,经常有冲突发生,之前都是把冲突文件删掉,然后再同步,是否有好的方法能同步最新代码呢?
假设有两个文件在一个git中管理分别是:
a.c b.c
现在甲和乙都同步了最新的代码,然后甲修改后提交,乙同时修改了本地代码,想把甲的改动同步下来,于是乙执行了
1 |
git pull |
很不幸的是,甲和乙修改的同一个地方,于是就出现了下面的错误:
1 2 3 4 5 |
error: Your local changes to the following files would be overwritten by merge: a.c b.c Please, commit your changes or stash them before you can merge. Aborting |
出现这个错误有两种解决办法:
1、备份本地的文件,然后执行:
1 2 |
git reset --hard git pull |
其中git reset是针对版本,如果是针对文件回退执行:
1 |
git checkout HEAD file/to/restore |
最后再将你的改动合并。
2、利用merge工具进行合并代码
当你执行git pull肯定是不行的,执行下面的几条命令:
1 2 3 |
git stash git pull git stash pop |
当执行最后一条命令会有下面的提示:
1 2 3 4 5 |
lab@lab-virtual-machine:~/gitpub/mytpro$ git stash pop Auto-merging b.c CONFLICT (content): Merge conflict in b.c Auto-merging a.c CONFLICT (content): Merge conflict in a.c |
有这个提示说明有冲突了,当你打开这个文件的时候会有这样的标记:
1 2 3 4 5 |
<<<<<<< Updated upstream 22 ======= ff >>>>>>> Stashed changes |
其中updated表示是服务器上的,而stashed changed说明是本地修改的,服务器和本地修改出现冲突就会出现这样的提示,你可以直接编辑这个文件实现merge,但是还有更好的办法就是采用merge工具。
下一篇将介绍如何用merge工具进行代码合并。
声明: 本文由( liva )原创编译,转载请保留链接: git 内容冲突的解决办法
git 内容冲突的解决办法:目前有1 条留言
发表评论

赞一个哦
2013-12-27 下午 7:35