隨著開發(fā)組成員越來越多推送代碼的頻率也越來越高儿咱,也就避免不了出現(xiàn)合錯分支而且推送到了遠(yuǎn)程branch上橡淑。之前遇到多次類似的問題掂之,一直是直接刪除遠(yuǎn)程branch再從master拉出一個新的店诗。
最近又遇到同事合錯了一個長期開發(fā)的branch到test分支上岭埠,由于我們測試服務(wù)器上的test分支是自動更新打包的盏混,如果刪除分支還需要運(yùn)維同事來一波騷操作處理branch切換的工作。所以今天專門花了一些時間來研究如何更好重置遠(yuǎn)程惜论,減少其他同事參與這類無產(chǎn)出的工作许赃,提升處理這類問題的效率。
下面是具體的操作:
分支操作者:
- git checkout test-release
這個test-release就是需要被配置的分支馆类,它對應(yīng)的遠(yuǎn)程就是origin/test-release- git reset --hard xxx
這是將當(dāng)前branch重置到xxx的commit點(diǎn)混聊, --hard是重置是丟棄xxx之前的所有代碼變化- git push --force
這里就很簡單了,強(qiáng)制把本地重置好的推給遠(yuǎn)程乾巧,此時的origin/test-release就和本地保持一致了句喜。
其他分支使用者:
- git checkout test-release
- git reset --hard origin/test-release
這步就是其他同事把自己本地test-release重置到與origin/test-release一致,注意--hard參數(shù)會丟棄超過origin的所有commit沟于,如果不想丟棄可以用 --mixed 或 --soft 具體用哪個自行研究吧