本文分类:
Git

可以将多次已经提交的记录合并为一条提交记录,过程描述如下:

git log 找到想要修改的commit的上一个commit的id,比如一次提交了A、B、C、D、E五次记录,要将C、D、E合并为一条。

git rebase -i B

该命令执行后,会弹出一个编辑窗口,3次提交的commit倒序排列,最上面的是最早的提交,最下面的是最近一次提交。

pick C commit info C
pick D commit info D
pick E commit info E
......
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
......

修改第2、3行的第一个单词 pick 为 squash 或字母 s

pick C commit info C
s D commit info D
s E commit info E

然后 :wq 或者 :x 退出,此时后进入下一个交互界面,输入要提交的 message 信息,然后 git 会执行 rebase 操作,如果没有错误,则可以执行git push --force命令推送到远程分支。

如果执行有错误,或者想取消当次 rebase 操作,则执行git rebase –abort命令取消。

本文来自 [时光记 - 王智超的个人空间](www.hiwzc.com),转载请注明出处。