git rebase

git rebase 可以用来合并commit

应用场景: 当对某一个功能进行多次修改,并在本地进行多次commit时, 在push到远程的时候,为了让分支看起来简洁明了,可以将本地的多次commit 合并成一次commit, 进行远程push

例如本地进行了2次提交


aaaa.png

其中后面两次修改TestView是做的同一件事情, 在push之前可以先进行合并

可以使用 git rebase -i HEAD~2 命令编辑合并操作, 后面的数字如果是3就表示合并当前最后3次提交

aaaaa.png

pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)

这里只能将 pick c953922 再次修改TESTView改为s c953922 再次修改TESTView, 表示将它和前一次提交进行合并,由于pick f7aa123 修改TestView的前一次提交没有包含在当前编辑的范围。

abbb.png

编辑完成,退出编辑,会进入到重新编辑的 注释页面,可以对每次提交的注释进行修改

abc.png

messagemessage #2: 后面的注释可以重新编辑,编辑后退出,就会显示合并结果

abcd.png

进行git log 查看,可以看到两次提交合并成了一次提交,注释也进行了合并


abcdf.png

注意: 如果合并时出错, 会生成一个新的分支,可以使用git rebase --abort取消合并,重新操作

abcdfgh.png

你可能感兴趣的:(git rebase)