背景
合并代码可以选择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退出

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

删除留下一个即可。
- git merge
发起PR即可

总结:
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 rebase与git merge的区别,教你如何在feature分支完成后通过git rebase origin/develop保持清晰历史记录,以及如何合并和解决冲突。掌握这两种方法,打造整洁的提交历史和避免问题定位困扰。
370

被折叠的 条评论
为什么被折叠?



