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


最近使用git時, 造成了遠程庫代碼需要回滾到之前版本的情況,為了解決這個問題查看了很多資料。

問題產生原因: 提交了錯誤的版本到遠程庫。

以下是解決的方法, 供大家參考:

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

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

2.遠程代碼庫回滾

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

最終采用了如下方法

git checkout the_branch  切換分支

git pull

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

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分支上,這樣遠程庫的代碼回滾就完成了。

如有問題,歡迎交流。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM