Git rebase的使用场景
最近在为github开源项目修修bug。提了几个Pull Request。又巩固了下git的知识,熟练了git的使用。
我在提交PR后,发现有个地方改错了。那怎么改呢,其实很简单,只需要再次push 到自己fork的repo就可以了。
PR的branch是和自己fork的repo的branch联动的。
但是,这又有个问题,我再次commit后,就会有两个commit。这两个commit其实解决的都是同一个问题。
在正式的repo中尽量要精简commit,同一个问题的多个commit需要squash为一个commit。
于是,我就得用git rebase 来帮我完成了。
精简commit
通过这个命令,可以重新修改最近的两个commit1git rebase -i HEAD~2
执行命令后会弹出一个vim编辑:12pick 01d1124 Message....pick 6340aaa Message....
然后,将要squash的commit的那行最前面的pick
改为 squash
12p 01d1124 Message....s 6340aaa Message....
删掉commit
|
|
改commit名字
大项目的commit的名字都有比较严格的要求,有些时候,我们要改下自己不规范的命名的话。
可以也可以用 git rebase.
很简单,同样先用git rebase -i HEAD~n
在需要改的commit的最前面把 pick
改为reword
12pick 01d1124 Message....reword 6340aaa Message....