博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用git pull文件时和本地文件冲突怎么办?
阅读量:5335 次
发布时间:2019-06-15

本文共 1145 字,大约阅读时间需要 3 分钟。

首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

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

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、先将本地修改存储起来

$ git stash

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

git stash暂存修改

git stash暂存修改

其中stash@{0}就是刚才保存的标记。

2、pull内容

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

$ git pull

3、还原暂存的内容

$ git stash pop stash@{0}

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

Auto-merging c/environ.cCONFLICT (content): Merge conflict in c/environ.c

意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。

4、解决文件中冲突的的部分

打开冲突的文件,会看到类似如下的内容:

 

git冲突内容

git冲突内容

其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

 

解决完成之后,就可以正常的提交了。

转载于:https://www.cnblogs.com/leonardchen/p/9144723.html

你可能感兴趣的文章
算法笔记--BSGS && exBSGS 模板
查看>>
P5043 【模板】树同构([BJOI2015]树的同构)
查看>>
Codeforces 348 D - Turtles
查看>>
bzoj 2321 星器
查看>>
HDU 6568 Math
查看>>
BZOJ 4488: [Jsoi2015]最大公约数
查看>>
算法笔记--笛卡尔树模板
查看>>
2018年长沙理工大学第十三届程序设计竞赛 I 连续区间的最大公约数
查看>>
AcWing 246. 区间最大公约数
查看>>
算法笔记--线性基求交模板
查看>>
BZOJ 2154: Crash的数字表格
查看>>
The 2019 Asia Nanchang First Round Online Programming Contest The Nth Item
查看>>
BZOJ1413 [ZJOI2009]取石子游戏
查看>>
「模拟8.21」虎
查看>>
「模拟8.23」阴阳 DP
查看>>
「模拟8.21」山洞(矩阵优化DP)
查看>>
「模拟8.29」chinese(性质)·physics·chemistry(概率期望)
查看>>
「csp-s模拟测试(9.18)」Set·Read·Race
查看>>
csp-s模拟测试「9.14」A·B·C(三分,贪心)
查看>>
可爱精灵宝贝(贪心,搜索)
查看>>