Git中如何合并多个提交?代码举例讲解

在Git中合并多个提交,可以使用git rebase命令。

git rebase 的用法如下:

  1. git rebase -i HEAD~n 合并最近的n个提交,n为提交次数。进入交互模式,可以对要合并的提交进行变基。
  2. git rebase -i 合并直到某个提交ID的所有提交,进入交互模式。
  3. 在交互模式中,可以对要合并的提交进行如下操作:
    • pick:保留该提交(默认操作)
    • squash:合并该提交与上一个提交
    • reword:合并该提交与上一个提交,但使用该提交的注释
    • edit:在合并该提交前停下来,进行其他操作
    • drop:丢弃该提交
  4. 合并完成后,可能需要解决冲突,然后git add、git rebase –continue继续。

例如:
合并最近3次提交:

$ git rebase -i HEAD~3

进入交互模式:

pick b2a6be7 add readme  # 保留该提交  
squash 4ca3e90 fix bug      # 合并该提交与上一个提交 
pick 7c26a4f modify code  # 保留该提交

# 改为:
pick b2a6be7 add readme  
s 4ca3e90 fix bug     
pick 7c26a4f modify code

修改完成后保存退出,Git会打开编辑器来编辑合并后的提交信息:

# This is a combination of 2 commits. 
# The first commit's message is:

add readme

# This is the 2nd commit message: 

fix bug

# Please enter the commit message for your changes.  

输入新的提交信息,保存退出,合并完成。
git rebase 用于变基,即重新定义一系列提交的上游和顺序。利用交互式rebase,可以方便地合并、重排、删除一系列的提交。