当前位置:   article > 正文

git学习-git合并多次提交_git 多笔合并提交

git 多笔合并提交

1 为何要合并多次 commit
  • 方便 code review:多次提交后的远程会有多条历史记录,并且极有可能中间的一条记录并不是最终的代码,导致 code review 时的混乱
  • 合并多次 commit 后,只会形成一条历史记录,这条记录中的代码修改即是最终的修改,只需要 review 这一条记录中的代码修改,就可以清楚最终的代码逻辑
2 导致多次 commit 的场景
  • 自己做完一个功能后,觉得没问题后 commit,结果领导看完后说要修改某个小地方。这时修改后又会做一次 commit。而且很有可能不止一次打回重做,这样就会产生很多的 commit
3 合并本地多次提交
3.1 做3次提交

在这里插入图片描述

3.2 开始合并
//以下命令表示合并 6f9b8ecc 往后的 commit(不包括 6f9b8ecc)
git rebase -i 6f9b8ecc

   
   
  • 1
  • 2
  • 1
  • 2

执行完命令出现以下界面
在这里插入图片描述
将 pick 改为 s 得到以下界面
在这里插入图片描述
修改完后保存退出得到以下界面

  • 可以合并 commit 提示:可以是所有功能的介绍,方便他人理解
  • 删除一下界面的原始提示,输入需要的提示
    在这里插入图片描述
3.3 rebase 完成后本地 log

在这里插入图片描述

  • 对比上图和第一张图,可以看出 3 个 commit 记录成功变成了 1 个
3.4 git push 后的远程 history

在这里插入图片描述
在这里插入图片描述

4 合并远程多次提交1
4.1 做2次远程提交

在这里插入图片描述

4.2 合并远程提交
  • 找到最新的不需要合并的 commitId
  • 之后的流程和合并本地流程一样
    在这里插入图片描述
4.3 和合并本地提交最后的区别
  • 由下图可以看出,合并远程多次提交,之前的远程提交记录还在。虽然仍然可以只看合并后的记录,但 code review 仍然不太方便
    在这里插入图片描述
5 合并远程多次提交2
  • 如何使得合并远程多次提交,并 merge 到 master 分支后,master 分支只有一条合并历史记录呢?
5.1 解决方案
  • 只需在 4.2 的 rebase 命令前,将当前分支切换出一个新的分支
  • 然后在这个新的分支上进行 rebase 命令(这样就相当于合并本地 commit了),这样这个分支对应的远程分支也就一条记录了
  • 最后将这新分支 merge 到 master 中
参考

git 几个commit点合并成一个commit点

转载:[git 合并多次提交](https://blog.csdn.net/kangsa998/article/details/104247156)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/67981
推荐阅读
相关标签
  

闽ICP备14008679号