git 协同开发解决冲突

在实际开发过程中有以下2中情况

1. 本地修改后,未执行 git commit, 当前的修改处于unstage 跟 stage的时候

  1. 执行 git pull 拉取最新代码,会提示冲突
    在这里插入图片描述
  2. 执行 git stash //会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录, 不会存储 Untracked files: 的文件
  3. git pull
  4. git stash apply stash@{0}
    在这里插入图片描述
  5. 解决冲突
vi common/readme

在这里插入图片描述
<<<<<<< Updated upstream 跟 ======= 之间的是git pull 下来的代码, ======= 跟>>>>>>> Stashed changes 是本地修改的代码

  1. 解决冲突后,执行 git add common/readme; git commit; git push

2. 本地修改后,已经执行了 git commit,并且希望保留本地的commit 信息

  • 本地的提交记录
    在这里插入图片描述
  • 远程仓库的记录
    在这里插入图片描述
    可以看到 在 commit id: efdba2e 之后,远程仓库更新了2个提交,然后本地提交了2个。
    此时我们希望将本地修改的 提交到远程的 f474912之后,并且保留本地提交的 commit 信息,我们需要在本地仓库进行以下操作:
  1. git pull --rebase
    在这里插入图片描述
    git提示我们有冲突
  2. 解决冲突
vi commom/readme

在这里插入图片描述
<<<<<<< HEAD 跟 ======= 是git pull 下来的代码 ,======= 跟 >>>>>>> [dir1] common readme. 之间的是本地修改的代码

  1. 解决冲突后执行: git add common/readme; git rebase --continue
  2. git log 查看 发现 本地修改的 已经 提交到远程的 f474912之后
    在这里插入图片描述
  3. git push
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值