git rebase 使用体会

我在首次提交 pull request 的时候,积了有好几个 commit,很凌乱。且 commit message 也没有认真写,经人指出之后我也发现了这个问题,让我 rebase 一下。

之前没接触过 git rebase 这个命令,不知如何下手的时候,导师帮我远程操作了一遍。他将我那些乱七八糟的 commit 合成一个,并且修改了 commmit message,果然世界一下子清静了。这次也让我明白了不要频繁提交的道理,我之前就像是把 github 当成同步网盘来用了,改一点代码就 push 上线。每次 commit 应该有个明确的主题,也方便代码管理和他人 review。

话说回来,我后来也多次偿试了一下 rebase 命令。发现这个命令还是挺有意思的,用好了可以很灵活地进行整理与合并。在使用过程中也遇到了一些问题,在这里记录一下。

用 git rebase 合并 commit

git log
git fetch xxx
git rebase -i HEAD~5
git push origin develop -f

git log 可以来查看 commit 历史,git fetch 拉下来远端代码库但不和本地和并,git rebase -i HEAD~5 可以对最近五次的 commit 进行修改,rebase 之后就进入了一个交互式修改界面,根据提交来操作就好了。但有几个要注意的选项:

p 使用该 commit
f 跳过该 commit 
e 修改 commit message 

所以,如果要对多个 commit 进行合并的话,就把待合并的 commit 改成 f,只留一个 p。

最后,git push 加参数 -f 强制 push 到远端仓库。

修改commit

git commit --amend 可以对最近一次的 commit 进行修改。但是如果想要对之前多次的 commit 进行修改还得求助于 rebase。

git rebase -i head~3


pick f9173fc Fix wrong name 'path_filename'
pick 3fddde0 Change versiton to 0.2:   Add share option
pick 5962845 Change platform section name from [arch-platform-name] to [name:platform]

将要修改commit,就把那行的pick改成e,然后保存退出,这时候会提示

You can amend the commit now, with
        git commit --amend
Once you are satisfied with your changes, run
        git rebase --continue

按照提示进行修改即可。

最后同样是 push 加 -f 强制提交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值