目录

Git rebase命令

目录

Git的rebase命令用于操作commits,包括合并、删除、提交内容修改、注释修改等。

比如实现了一个新功能,开发过程中提了多个commit,其中也有bugix,在正式push前,需要对commits进行精简,这时rebase命令就派上用场了。

我使用的Git版本是1.7.1,rebase的commit操作命令如下表,更高版本的Git提供更多的命令。

命令(,简写) 说明
pick, p use commit
reword, r use commit, but edit the commit message
edit, e use commit, but stop for amending
squash, s use commit, but meld into previous commit
fixup, f like “squash”, but discard this commit’s log message

其中,

  • pick

    保留commit

  • reword

    保留commit,但重新编辑该commit的注释

  • edit

    保留commit,但rebase操作执行到该commit时会暂停,用户在此commit基础上进行内容修改(当然,也可以不修改)后,执行git add 目标文件git commit --amend更新注释,然后执行git rebase --continue继续未完成的rebase工作。

    这个命令的使用场景是,需要对之前的某一个commit上做内容修改。

  • squash

    保留commit,但将其合并至前一个commit,合并时,自动汇总该commit与上一个commit的注释,用户可进行二次编辑

  • fixup

    squash功能类似,保留commit,将其合并至前一个commit,但是丢弃该commit的注释信息