git遠程庫代碼版本回滾方法

最近使用git時, 形成了遠程庫代碼須要回滾到以前版本的狀況,爲了解決這個問題查看了不少資料。git

問題產生緣由: 提交了錯誤的版本到遠程庫。spa

如下是解決的方法, 供你們參考:code

1.對本地代碼庫進行回滾blog

git log 查看提交歷史,找出要回滾到的commit-id
git reset --hard commit-id :回滾到commit-id
git reset --hard HEAD~3:將最近3次的提交回滾

2.遠程代碼庫回滾it

進行這一步的時候遇到了困難,嘗試了多種方法, 查看不少資料都提到使用git push -f 進行強推, 來覆蓋遠程倉庫代碼, 可是公司使用了gerrit代碼審查軟件, 會對代碼審查後而後再手動去合入, 致使這個方法失效了。ast

最終採用了以下方法class

git checkout the_branch  切換分支軟件

git pull方法

git branch the_branch_backup   備份一下這個分支當前的狀況im

git reset --hard the_commit_id   把the_branch本地回滾到the_commit_id

git push origin :the_branch   刪除遠程 the_branch

git push origin the_branch //用回滾後的本地分支從新創建遠程分支

git push origin :the_branch_backup //若是前面都成功了,刪除這個備份分支

因爲使用了gerrit,gerrit中心庫是個bare庫,將HEAD默認指向了master,所以master分支是不能進行刪除操做的,因此在操做過程當中建立了一個新的分支,把回滾後的代碼提交到新建的分支上, 再合入到master分支上,這樣遠程庫的代碼回滾就完成了。

若有問題,歡迎交流。

相關文章
相關標籤/搜索