Rebase

99 阅读2分钟

Rebase

如果你们的开发模式是跨团队开发,是通过fork仓库,提交pr的形式去merge代码的工作流程,这时候可能会对你提交pr上面看到的commit信息有一定的要求,一般需要把commit合并成一条,才会merge你的pr

如果是这样,rebase就能帮到你了

使用rebase需要注意,不能rebase远程的任何commit信息,只能rebase自己分支或者自己fork后的那个仓库的commit信息

现在以分支的形式来操作rebase

  1. 先查log git log --oneline

9.jpg

现在能明显的看到分界线了,接下来的rebase的时候绝对不能使用(origin/master)后面的log(也就是head)

  1. git rebase -i ea330ca 按完回车,会进入

10.jpg 在进入下一步之前先介绍一下,里面的常用命令

11.jpg

pick:保留该commit(缩写:p)

reword:保留该commit,但我需要修改该commit的注释(缩写:r)

edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)

squash:将该commit和前一个commit合并(缩写:s)

fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)

exec:执行shell命令(缩写:x)

drop:我要丢弃该commit(缩写:d)

12.jpg 需要注意:你需要按i键才能进行编辑操作, 修改完成之后,按esc,英文状态下,输入:wq然后按回车,然后就会进入

13.jpg 同样操作,按i键进入编辑

14.jpg 这时候就可以按回车退出了,然后再重新push一次,但是需要push -f,否则是推送不上去的

16.jpg

18.jpg 可以看一下,push之前仓库的commit信息

15.jpg 然后push之后再看一下仓库的commit信息

17.jpg 也可以通过git log去查看

19.jpg