IDEA遠程倉庫版本回滾


轉自:https://www.cnblogs.com/vcmq/p/10162051.html

使用 git 進行項目的版本控制時,肯定會遇到回滾版本的情況,回滾有兩種,一種是本地倉庫回滾,另外一種是遠程倉庫回滾。以下詳細講解兩種回滾方式,本文主要講解遠程回滾,以及常見使用誤區。

本地倉庫回滾

本地回滾就很簡單,只是要撤銷 commit 信息即可。可以直接使用 Reset HEAD進行回滾。

HEAD^ 是還原到上一個版本,HEAD^^ 是還原到上上一個版本。
Reset Type 有三種:

mixed 默認方式,只保留源碼,回退commit和index信息
soft 回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit
hard 徹底回退,本地源碼也會變成上一個版本內容

錯誤的遠程倉庫回滾方式

遠程倉庫代碼回滾,如果上 Google 上一搜,基本出來的答案都是使用 Reset HEAD 加上 git push -f 強制提交的方式。

我本地測試了一下,如果有兩個人同時在這條分支上開發,其中一個人 小 A 如果使用這種方式進行回滾了遠程倉庫代碼,另外一個人 小 B 此時本地還是回滾之前的代碼,小 B 那里就會出現本地代碼版本高於遠程分支版本的情況,此時若小 B 進行了 push 操作,之前小 A 回滾的代碼就又會被推送到遠程的倉庫了。除非小 B 在回滾后,將其本地倉庫的版本也進行回滾。才能保證不會把回滾的代碼重新 push 回遠程倉庫,但是如果開發人員多,就無法保證所有開發人員的本地分支都回滾!

因此,不要使用 git push -f 這種方式來強制回滾遠程倉庫代碼!

正確的遠程倉庫回滾方式

如圖所示,現在需要將遠程倉庫回滾到 dev-103 這次提交點。

選中 dev-103 這一行,右鍵選擇 Revert

這里提示需要 commit

commit 之后,push 到遠程倉庫中。最終結果如下:

新增了一條提交記錄,查看代碼已經被回滾了

其他開發人員如果進行了 pull,其本地倉庫也被正確回滾到了 dev-103 提交點,就無需再擔心回滾的代碼又被重新 push 到遠程倉庫啦。


免責聲明!

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



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