本文的主要围绕着下面这个问题展开的,在阅读之前可以先自己思考一下问题的答案是什么?
- 如何修改以前的message信息?
- 如何合并连续的以及不连续的commit记录?
以下操作适合提交到本地仓库,未推送到远程仓库时使用,否则多人合作开发时,可能会对他人带来问题。
开始前需要了解的的基础操作:
- 交互编辑界面,点击
i
键进入编辑模式 - 点击
ESC
键退出编辑模式,进入命令行模式 - 命令行模式,点击
:
进入末行模式,输入wq
敲回车,可以保存并退出 - rebase交互界面和修改message界面都会用到上述基础操作
修改当前分支最后一次提交的message
直接使用下面的命令即可,这里会改变提交记录的哈希值
git commit --amend
修改许久以前的 commit 的 message
三步走:找出上次提交记录 -> 编辑提交记录 -> 编辑提交信息
1、确定需要改变 message 的 commit,例如下图画圈的 commit,我们需要使用它上次的 commit,即使用2f001c07fee6d3357da689b0fced90de69bae61d
2、使用 rebase 操作,然后会进入交互操作,编辑涉及到的 commit
git rebase -i 上一次commit的记录号
然后点击i
键进入编辑模式,修改指定 commit 的提交信息,注意需要修改提交信息的 commit 使用reword
,不需要改变的使用pick
,然后点击ESC
键进入编辑器的命令行模式,输入:wq
,回车保存并退出
3、接着会进入 message 的编辑的界面,这时候可以修改之前提交的 message 了;i
键进入编辑模式,最后点击ESC
键进入命令行模式,输入:wq
,回车保存并退出
连续多个commit整理成一个
1、假设把c3aa78f
和5dfd4ee
合并成一次提交记录,先找到前面的提交记录2f001c07fee6d3357da689b0fced90de69bae61d
2、使用rebase
命令,交互编辑界面,其中一个记录作为合入提交记录,其余合并掉的记录使用s
,点击ESC
键进入编辑器的命令行模式,输入:wq
,回车保存并退出
git rebase -i 2f001c07fee6d3357da689b0fced90de69bae61d
3、然后进入提交记录的 message 修改界面,修改保存即可完成合并
4、完成合并以后的记录如下所示
间隔的几个commit整理成一个
操作类似于连续多个commit整理成一个,使用git rebase -i 记录号
,进入交互界面,细节有些不同的地方:
- 需要作为基础提交的放在最上面,pick
- 需要合并的提交,挑选出来,紧接着基础提交,命令 s
- 其他提交放在下面,接着使用pick
1、我们现在把aef5fdedc
和e5bed6414
合并在一起
2、使用rebase
命令,交互编辑界面,然后根据开始的提示操作
git rebase -i 2f001c07fee6d3357da
3、接着会进入修改message的界面
4、最后完成提交记录的合并如下所示