git多用户冲突解决-twilightdream的专栏-博客频道-CSDN.NET

git 多用户冲突解决

.

标签: git合并

2017-06-09 08:43 44人阅读 评论(0) 收藏 举报

.

分类:

git (4)

.

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]

git多用户冲突一

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

git reset --hard
git rebase master

  * 1
  * 2


  * 1
  * 2

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

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

  * 1
  * 2
  * 3
  * 4
  * 5
  * 6


  * 1
  * 2
  * 3
  * 4
  * 5
  * 6

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

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

git reset HEAD^

  * 1


  * 1

git多用户冲突二

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

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

2 . 本地撤销此次提交

git reset HEAD^

  * 1


  * 1

3 . 更新代码,重新提交

.


0


0
.

相关文章推荐