新需求->开发->测试->pr->新需求....,应该是大部分写业务的程序员的日常了(架构师除外)。本文主要讲pr这一小步,也是作者痛定思痛之后学会的一个小技巧。
先说下背景,自己开发完之后先将代码提交到自己仓库,然后将代码部署到beta(测试)环境去测试。当然你有可能一次成功,而且也不需要任何优化。本文主要针对的是一个需求提交多次之后才达到提交pr条件的情况。
git add xx --> git commit -m 'xx' --> git push origin yourbranch,多次重复之后代码终于没问题(自己感觉)了,于是提交了pr。reviewer检查之后又给你提出了几个需要修改的地方(崩溃)。于是你又马上修改-->add/commit/push-->测试,但是从现在起每次提交都会给reviewer发邮件,如果不想让reviewer因为收到多次感到厌烦,你可能会先把pr关闭,悄悄地把bug改掉。但是目前一个需求已经有好多commit了,这个时候你想把这些commit合并成一个怎么办?在另外一个branch上重写一遍之前的代码?作者之前就是用这种蠢办法,疯狂复制粘贴,麻烦而且还不一定能保证没有遗漏任何之前的修改。本文就在不重写之前代码的情况下帮你解决这个问题。
前提,自己的仓库至少有两个分支branch1/branch2(master除外,master分支不宜随便动)。假如之前在branch1上add/commit/push 10次之后代码没问题了,而且保证branch2上和项目仓库master分支代码是同步的。这时候git checkout branch2将分支切换到branch2,然后执行git rebase(或者merge) branch1,这样就把之前branch1上的所有提交都同步到branch2上来了。注意同步到的是自己的本地仓库local repository而不是workspace(也就是说相当于在brabch2上已经commit了,还没有push),可以git status验证一下。这个时候branch2上还是有10个commit,现在就可以使用git rebase -i将这10个commit合并了,git push,重开pr,大功告成!
网友评论