git pull拉取代码时冲突的解决办法

在使用git pull命令拉取代码时,有时会遇到以下错误信息:

error: Your local changes to the following files would be overwritten by merge:
       ...
Please commit your changes or stash them before you merge.
Aborting
Updating 1d17a2c5..3de3e123
可按以下步骤解决此问题:

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

使用git stash命令,这样本地的所有修改就都被暂时存储起来 。其中stash@{0}就是刚才保存的标记。后续可以通过此标记访问。

2.再次拉取代码

git pull

3.还原暂存的内容

git stash pop stash@{0}

4.解决冲突

在存在冲突的文件中,Updated upstream 和=====之间的内容为拉取下来的代码,=====和stashed changes之间的内容就为本地修改的代码。解决完成之后,就可以正常的提交了。

5.删除stash

使用git stash drop stash@{0}命令,如果不加stash编号,默认的就是删除最新的,即编号为0的。或者git stash clear命令,清除所有stash。

以上部分原文:https://blog.csdn.net/asty9000/article/details/83591142 

 

关于使用命令解决git pull拉取代码时发生的冲突解决办法

1、首先直接git pull拉取线上的代码,出现冲突并报错

2、合并主分支 git merge master

3、查看状态:使用命令git status -uno 查看当前状态

目前有三种状态,包括已经commited的,还有就是Unmerged path路径下的文件,就是我们需要手动合并的,没有冲突回Auto-merging(自动合并)。

我们需要手动合并下面两个文件:

手动打开文件后会发现,代码会被<<<<<<<<<、========、>>>>>>>>>等包围,这是冲突标记。

关于冲突标记:<<<<<<和======之间的内容是本地自己修改的,========与>>>>>>>>>之间的内容是别人修改的。

4、在修改完两个文件后,可以分别将文件git add到暂存区

如:    使用命令:git add  LocationController.java

                            git add  SysService.java

然后统一git commit将修改合并的文件添加到工作区:

5、git commit -m "conflictJava"

6、再用 git  status -uno查看文件状态

发现冲突已经解决,接下来将文件提交到远程仓库。

7、使用命令:

   git push origin  master

方法二:使用可视化工具,如:Tortoisegit
 1、如果事先知道别人和自己同时更改了某一个具体文件,则将本地文件重命名, 

2、git pull下来线上的代码。然后再此基础上修改后再将文件push上取即可。

如果不知道别人和自己同时修改了同一个文件,就拉取了线上代码。

则先使用命令:可以先放弃本地修改后更新:

 1、git reset --hard

2、git pull

如果已经手动更改了冲突文件,将别人修改后和自己的合并了的,可以使用 tortoisegit中的git resolve,然后直接pull提交即可。--------(该方法亲测有效)
以上部分原文:https://blog.csdn.net/yangchunshang/article/details/80281699 
 

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值