美文网首页
[Git]合并多次提交

[Git]合并多次提交

作者: BinaryBang | 来源:发表于2019-12-20 15:42 被阅读0次

1 问题提出

很多时候,很难作到一次提交能够完整地解决一个功能,经常性出现以下情况:
为了完成2个功能,一共进行了5次提交,按照时间先后顺序分别为m1,m2,m3,m4,m5其中:
m1 对应 功能1的A模块;
m2 对应 功能1的B模块;
m3 对应 功能2的A模块;
m4 对应 功能1的C模块;
m5 对应 功能2的B模块;
如图所示:


1.png

如果能把提交m1,m2,m4合并成一次提交,然后提交日志改为"[功能1] 模块A,模块B,模块C"
把提交m3和m5,合并成一次提交,然后日志改为"[功能2]模块A,模块B"
就会显得更加整洁和优雅;

让我们来看看如何实现这个功能吧.

2 查看提交记录

"$ git log --oneline -5"用比较简洁的方式查看最近提交的5次日志:
1,git log命令可以查看提交的历史记录;
2,--oneline参数,commitid只显示前面7位,然后加上提交日志;
3,-n 参数,查看最近的n次提交的信息;


2.png

3 调整最近5次的提交

$ git rebase -i HEAD~5
该命令表示调整最近5次的提交
当输入该命令后,需要编辑一个文本文件,来指导git如何调整;
git首先会给出一个默认的模板给我们,模板如下:


3.png

红色部分,代表着当前5次提交的情况,表示按照提交顺序从前到后,分别是m1,m2,m3,m4,m5;
这个和我们的实际情况是一样的.
所以如果我们直接输入wq保存提交,什么都不会改变;

按照我们的需求,需要调整文本为这个样子:


4.png

pick 90094e0,表示使用m1这次提交;
squash 23009f9,表示将m2这次提交合并到上一次pick的提交,即m1;
squash 52647ed,表示将m4这次提交合并到上一次pick的提交,即m1;
pick 463bf9a,表示使用m3这次提交;
squash 890f916,表示将m5这次提交合并到上一次pick的提交,即m3;

进入底行模式,输入wq保存退出后,git将按照这个脚本执行调整命令;
当使用m1,合并m2,m4之后,提示输入第一次pick的的日志,会先分别显示这3次提交的日志:


5.png

我们更改为:


6.png

再次输入wq,保存退出,提示输入第二次pick的日志,我们直接输入


7.png

然后再次wq保存退出,提示编辑成功.

然后,我们在sourcetree上查看效果:


8.png

origin/master分支上,有5次提交,杂乱无章;
master分支上,现在只有2次提交,干净漂亮有没有;

4 改动推送到origin

使用 '$ git push -f'命令,将改动强行推送到远程仓库;

Reference

1.vim如何移动一行
2.合并多次提交

相关文章

  • git 一些用法: 合并,修改提交信息,回退版本

    1. 合并多次提交 1) 查看修改历史 git log 2) 合并6次提交git rebase -i HEAD~6...

  • Git合并多次提交

    rebase简介 rebase的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用...

  • Git合并多次提交

    我们将自己的分支合并到主分支的时候,都希望将自己的多次修改bug和调试的commit合并为一次功能commit,然...

  • [Git]合并多次提交

    1 问题提出 很多时候,很难作到一次提交能够完整地解决一个功能,经常性出现以下情况:为了完成2个功能,一共进行了5...

  • Git 合并多次提交

    在合并分支的时候,希望将多次提交合并成一个,然后再 cherry-pick 到主分支。 合并分支 develop ...

  • 七、git合并多次提交

    在开发中我们需要保持远程仓库清洁,不希望本地开发多次提交信息都提交到远程仓库; 第一种方法:git rebase ...

  • git合并多次提交为一次提交

    在实际开发工作中,很少有一次提交git就达成目标的情况,往往是需要多次修改提交,那么多次提交git,在合并到mas...

  • Git rebase 使用记录

    当你想把git 的多次提交记录合并为一次时,可以使用git rebase.1、先查历史提交记录 2、git reb...

  • 补充2Git命令知多少

    6.git rebase 应用场景: 1)合并多次提交信息: A.在一个版本库中提交了三此commit: B.合并...

  • 如何使用git合并多次提交

    在为代码添加一个新功能的时候你会怎么做?(从git的操作顺序来说) 如果是我的话,顺序如下: 先是使用git ch...

网友评论

      本文标题:[Git]合并多次提交

      本文链接:https://www.haomeiwen.com/subject/udrinctx.html