当git rebase遇上arc diff

2,290 阅读1分钟

当我们在项目开发中,经常会在不同的分支上进行迭代开发,而保证master分支是最新的代码。如果你在feather1上进行了开发,并进行了提交。此时你的小伙伴更新了master上的代码。此时如果你想与master分支上的代码保持同步,可以执行以下代码:

git branch //查看分支
git checkout master //切换到master分支
git pull //更新本地master分支上代码
git checkout feather1 //切换到feathear1分支
git rebase master //将master分支最新的分支同步到本地feather1分支上,这个过程中可能会有冲突,
解决完冲突之后执行 
git add .
git rebase --continue 即可

此时本地feather1分支上的代码与master分支上一置.

如果使用 git merge master 命令,当查看git log 时 会有一些merge信息

git rebase的另外一个用法是可以将多次commit合并为1次

命令为:
git rebase -i HEAD~3  //将最近三次commit合并为一次
或
git rebase -i [startpoint][endpoint]//弹出交互式页面让用户编辑完成合并操作

我们公司使用了arc diff 作为代码review的命令 当arc diff之前 使用 git pull命令同步代码时再次出现冲突,解决完冲突之后,

git add .
git commit -m 'fix: 解决冲突'
arc diff  //此时会把之前多次commit的信息都显示出来,删除多余的信息,只保留一个就好
arc land //完成

今天在工作中的曲折过程完毕