git rebase实战操作

背景

合并代码可以选择git merge和git rebase,两者的区别是git rebse可以让你保留一条直线提交历史记录,方便查看。merge则不会。

操作命令

根据git flow规范,feture分支都是基于develop分支切的,我们开发完自己的feature分支以后,可以进行git rebase origin develop,然后再切到develop分支进行merge操作,当然你执行git rebae origin develop以后,也可以直接在github上执行PR操作,即pull request。

综上,主要2个步骤:

  • git rebase
  • git merge

多一步git rebase是因为我想让develop分支上面保留一条直线历史提交记录,然后这样比较方便看提交记录,不至于那么乱。

具体命令:

比如我开发完feature/1225分支了以后,我现在要进行git rebase和git merge操作

  • git rebase
git fetch --all && git rebase -i origin/develop

1、如何将feature/1225分支 的多个commit合并成一个? 

你运行上述命令以后,会跳到另外一个页面,你将除了第一个pick,后面所有的pick 改成s,然后按下esc键,然后wq退出

git rebase实战操作_第1张图片

2、如何将feature/1225分支 的多个commit msg合并成一个? 

git rebase实战操作_第2张图片

删除留下一个即可。 

  • git merge

发起PR即可

git rebase实战操作_第3张图片

总结: 

rebase 特点:会合并之前的commit历史
优点:得到更简洁的项目历史,去掉了merge commit
缺点:如果合并出现代码问题不容易定位,因为re-write了history

如果你想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase
如果你想保留完整的历史记录,并且想要避免重写commit history的风险,你应该选择使用git merge

注意:

合并时如果出现冲突需要按照如下步骤解决

  • 修改冲突部分
  • git add
  • git rebase --continue
  • (如果第三步无效可以执行 git rebase --skip

不要在git add 之后习惯性的执行 git commit命令。

 

你可能感兴趣的:(git,前端)