git 多用户冲突解决

git多用户冲突一

场景:dev 分支修改了 File1,master 分支更新了远端代码后也修改了 File1 的同一个代码块,dev 变基到 master 时会产生冲突
解决方法:
case 1 :如果希望 master 分支完全覆盖 dev 分支的修改,使用如下命令回退后变基:

git reset --hard
git rebase master

case 2 :希望保留 dev 分支的改动。如果 dev 分支的改动没有commit,需要暂存变更,变基后再手动合并冲突,使用命令如下:

git stash
git rebase master
git stash pop         // 会有冲突
git diff ***          // 手动合并冲突,***代表文件名
git add ***           // 修改完成后提交
git rebase --continue // 完成变基

其中 git stash 表示备份当前工作区内容到 Git 栈,并使当前工作区内容与上次提交时一致,更新最新代码,git stash pop 表示从 Git 栈中读取最近一次保存的内容,恢复工作区的相关内容,git diff 表示手动 merge 冲突的文件

case 3 :如果本地已经 commit,使用如下命令撤销最近一个 commit,再执行步骤2

git reset HEAD^


git多用户冲突二

场景:用户 UserA 提交了 change A,暂时没有 review,未被 merge 到远端主分支。之后用户 UserB 提交了change B,merge 成功。当 merge change A 时出错

解决方法:
1 . gerrit 上 Abandon change A

2 . 本地撤销此次提交

git reset HEAD^

3 . 更新代码,重新提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值