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的注释信息