git 如何合并两个或多个commit成为一个commit
一、场景
有时候我们在用git提交代码之后,突然发现有些细节的小问题,需要修改并再次提交,但是这次的提交又没有必要作为一个单独的commit,也不想让领导看到这多次的提交,从而觉得这开发太不认真,这时候就需要使用git命令把多次的commit合并成一个commit。
二、 操作步骤
1、打开git bash 命令窗口,到对应的项目下面,输入命令:git rebase -i HEAD~2 , 其中HEAD~2是指历史的前两个提交,可以根据自己的情况调整,比如像合并前三个,就改为HEAD~3。
输入命令后,会出来vim编辑界面,如下:
pick d2a6e0d1a5c MN-16032 add audit log for contact delete via manager portal
pick a15751a94c0 MN-16032 optimize saveAuditLogForContacts to handle add/update operation
# Rebase 40b7ebb2ef8..a15751a94c0 onto 40b7ebb2ef8 (2 commands)
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
2、 修改第二行的pick为s,也就是squash合并的意思,退出编辑,此时会执行合并,并再次弹出vim编辑界面,如下:
1 # This is a combination of 2 commits.
2 # This is the 1st commit message:
3
4 change 1: rename the field
5
6 # This is the commit message #2:
7
8 change 2: add log info
9
10 # Please enter the commit message for your changes. Lines starting
11 # with '#' will be ignored, and an empty message aborts the commit.
将上边的change 1 和change 2 合并成一个如:
1 # This is a combination of 2 commits.
2 # This is the 1st commit message:
3
4 change 1: rename the field and add log info
10 # Please enter the commit message for your changes. Lines starting
11 # with '#' will be ignored, and an empty message aborts the commit.
保存并退出编辑
3、输入命令 git push origin mybranch -f ,这里的mybranch填你当前的分支
4、这样就将两个commit合并成了一个commit。