IDEA遠程倉庫版本回滾

訪問個人博客git

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

<!--more-->spa

本地倉庫回滾

本地回滾就很簡單,只是要撤銷 commit 信息便可。能夠直接使用 Reset HEAD進行回滾。
版本控制

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

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

錯誤的遠程倉庫回滾方式

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

我本地測試了一下,若是有兩我的同時在這條分支上開發,其中一我的 小 A 若是使用這種方式進行回滾了遠程倉庫代碼,另一我的 小 B 此時本地仍是回滾以前的代碼,小 B 那裏就會出現本地代碼版本高於遠程分支版本的狀況,此時若小 B 進行了 push 操做,以前小 A 回滾的代碼就又會被推送到遠程的倉庫了。除非小 B 在回滾後,將其本地倉庫的版本也進行回滾。才能保證不會把回滾的代碼從新 push 回遠程倉庫,可是若是開發人員多,就沒法保證全部開發人員的本地分支都回滾!源碼

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

正確的遠程倉庫回滾方式

如圖所示,如今須要將遠程倉庫回滾到 dev-103 此次提交點。it

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

這裏提示須要 commit

commit 以後,push 到遠程倉庫中。最終結果以下:

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

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

搞定,收工!

相關文章
相關標籤/搜索