隨著開發(fā)組成員越來越多推送代碼的頻率也越來越高,也就避免不了出現(xiàn)合錯(cuò)分支而且推送到了遠(yuǎn)程branch上。之前遇到多次類似的問題,一直是直接刪除遠(yuǎn)程branch再從master拉出一個(gè)新的。
最近又遇到同事合錯(cuò)了一個(gè)長期開發(fā)的branch到test分支上,由于我們測試服務(wù)器上的test分支是自動(dòng)更新打包的,如果刪除分支還需要運(yùn)維同事來一波騷操作處理branch切換的工作。所以今天專門花了一些時(shí)間來研究如何更好重置遠(yuǎn)程,減少其他同事參與這類無產(chǎn)出的工作,提升處理這類問題的效率。
下面是具體的操作:
分支操作者:
- git checkout test-release
這個(gè)test-release就是需要被配置的分支,它對(duì)應(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)程,此時(shí)的origin/test-release就和本地保持一致了。
其他分支使用者:
- git checkout test-release
- git reset --hard origin/test-release
這步就是其他同事把自己本地test-release重置到與origin/test-release一致,注意--hard參數(shù)會(huì)丟棄超過origin的所有commit,如果不想丟棄可以用 --mixed 或 --soft 具體用哪個(gè)自行研究吧