0%

git pull文件时和本地文件冲突怎么办?

平时在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:

1
2
error: Your local changes to 'c/environ.c' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.

这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。

处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理。

1、先将本地修改存储起来

1
git stash

这样本地的所有修改就都被暂时存储起来 。使用 git stash list 可以看到保存的信息:

其中 stash 就是刚才保存的标记。

2、pull内容

暂存了本地修改之后,就可以pull了。

1
git pull

3、还原暂存的内容

接下来还原暂时存储的内容(即保存我们的所有修改):

1
git stash pop

系统提示如下类似的信息:

1
2
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in 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主题更新,也可以参照这个来弄!