git pull文件时和本地文件冲突怎么办?
前言:
平时在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:
1 | error: Your local changes to 'c/environ.c' would be overwritten by merge. Aborting. |
这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。
处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理。
1. 先将本地修改存储起来
1 | git stash |
这样本地的所有修改就都被暂时存储起来 。使用 git stash list 可以看到保存的信息:
其中 stash 就是刚才保存的标记。
2. pull内容
暂存了本地修改之后,就可以pull了。
1 | git pull |
3. 还原暂存的内容
接下来还原暂时存储的内容(即保存我们的所有修改):
1 | git stash pop |
系统提示如下类似的信息:
1 | Auto-merging c/environ.c |
意思就是系统自动合并修改的内容,但是其中有冲突, Git 无法确定一些改动,所以要我们手动解决文件中冲突的部分。
4. 解决文件中冲突的的部分
首先打开报 CONFLICT 的文件 , 会看到类似如下的内容:
Ctrl + F 搜索
>>>>>>> Stashed changes
,查看从此处到=======
之间保存的代码,回忆一下自己当时更改了什么,是为了达到什么功能。
然后查看=======
到<<<<<<< Updated upstream
之间更新的代码,与下面保存的代码进行对比(也请浏览下所标出代码前后的代码):
注意:要是自己不确定,一定记得将 <<<<<<< Updated upstream
到 >>>>>>> Stashed changes
之间的代码另存备份,然后进行调试,直到最后确定没有问题。
5. 保存这些文件的修改
1 | git add -A |
6. 最后再来试一下pull吧
1 | git pull |
PS:Next主题更新,也可以参照这个来弄!