git 记录:
- a1
- a2
- a3
- a4
- a5
请问如何合并 a2、a3、a4
并把 commit message
改为 a24
也就是改成:
- a1
- a24 // a2、a3、a4 合并后的
- a5
git 记录:
- a1
- a2
- a3
- a4
- a5
请问如何合并 a2、a3、a4
并把 commit message
改为 a24
也就是改成:
- a1
- a24 // a2、a3、a4 合并后的
- a5
5 回答2.8k 阅读
3 回答2.6k 阅读
3 回答960 阅读
可以使用
git rebase
合并commit,用法为其中
-i
为--interactive
,即通过交互界面完成合并操作。[startpoint]
和[endpoint]
为需要合并的起止版本号,其中[startpoint]
不会被进入合并流程,而[endpoint]
则会(当然可以选择不合并)。需要确保该分支只有你自己在使用时才使用rebase进行合并!
示例
通过
git log
查看commit的版本号,假设a5~a1
依次如下:需要合并
a2、a3、a4
,则使用命令([endpoint]
省略时默认为HEAD
):然后会出现一个文件编辑的界面
注意这里需要留头留尾,即首尾都需要
pick
,否则会出现head detached
等情况。这也是为什么我们在这里的[endpoint]
要设置为HEAD
。我们修改上方的指令即可,下方主要为命令具体说明,其中
s
即为squash
,可以将几个commit合并,将文件修改为:这样就将
a3,a4
的提交都折叠了。输入:wq
保存后会进入新的编辑界面:可以将其删除,输入自己想要的合并信息如:
然后输入
:wq
保存即可。此时
git log --oneline
查看提交记录则变成了