随着开发组成员越来越多推送代码的频率也越来越高,也就避免不了出现合错分支而且推送到了远程branch上。之前遇到多次类似的问题,一直是直接删除远程branch再从master拉出一个新的。
最近又遇到同事合错了一个长期开发的branch到test分支上,由于我们测试服务器上的test分支是自动更新打包的,如果删除分支还需要运维同事来一波骚操作处理branch切换的工作。所以今天专门花了一些时间来研究如何更好重置远程,减少其他同事参与这类无产出的工作,提升处理这类问题的效率。
下面是具体的操作:
分支操作者:
- git checkout test-release
这个test-release就是需要被配置的分支,它对应的远程就是origin/test-release- git reset --hard xxx
这是将当前branch重置到xxx的commit点, --hard是重置是丢弃xxx之前的所有代码变化- git push --force
这里就很简单了,强制把本地重置好的推给远程,此时的origin/test-release就和本地保持一致了。
其他分支使用者:
- git checkout test-release
- git reset --hard origin/test-release
这步就是其他同事把自己本地test-release重置到与origin/test-release一致,注意--hard参数会丢弃超过origin的所有commit,如果不想丢弃可以用 --mixed 或 --soft 具体用哪个自行研究吧
网友评论