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 主题更新,也可以参照这个来弄!

------------- 本文结束 感谢您的阅读 -------------
正在加载今日诗词....