我们有时候会出现频繁提交代码的问题,可能多个commit id 实际上一个作用,为了让git log看起来更清晰,我们会将多个commit id 合并成若干个commit id. 这就涉及到git rebase -i. 通过这条命令,我们可以修改git 提交的顺序, 或者是删除某个commit , 修改某个commit 信息, 下面就详细介绍git rebase -i。
git log //假设下面是当前分支的提交信息
commit-id1
commit-id2
commit-id3
commit-id4
commit-id5
git rebase -i commit-id4 //表示我们希望修改commit-id4之前的commit(包括commit-id4)
git rebase -i commit-id4后会出现这样一个界面。
pick commit-id1 info1
pick commit-id2 info2
pick commit-id3 info3
pick commit-id4 info4
# Rebase commit-id4 onto commit-id1
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
pick 表示git会应用这个补丁,以同样的提交信息(commit message)保存提交。
squash 表示git会把这个提交和前一个提交合并成为一个新的提交。这会再次调用编辑器,你在里面合并这两个提交的提交信息,还需要提供新的commit 信息。