1. 程式人生 > >iOS SourceTree超前一個版本,落後N個版本

iOS SourceTree超前一個版本,落後N個版本

     聯絡人:石虎 QQ:1224614774  暱稱: 嗡嘛呢叭咪哄

                         QQ群:807236138   群稱: iOS 技術交流學習群

 

一、概念

        在使用SourceTree的時候經常會遇見超前一個版本,落後N個版本的情況,遇見這種情況應該怎麼辦呢?

首先開啟終端,最好是從SourceTree裡面開啟,選單欄有個終端按鈕。

然後輸入:

$ git reset --hard HEAD^
這句話的意思是將自己最近的一次提交撤銷,回到push之前的狀態。但是所有commit的內容就都消失了。非常不建議用這個引數,會犧牲太多的程式碼。。

如果不想讓commit消失,可以改一下引數。用這個引數可以保證你提交的程式碼原封不動的儲存下來。前提是你本地的工作臺是乾淨的。如果不是請把所有程式碼都暫存。

$ git reset --soft HEAD^
執行這句話之後重新拉取一遍程式碼就可以了,push的都會撤銷回來。

  如果想一次回退多個push,可以這樣:(例子是撤銷最近三次的提交)

$ git reset --soft HEAD~3
如果想回退到某個指定版本,在終端中輸入:
$ git reset --soft 1234567
1234567是要回退到的版本號,根據具體情況而定,這裡只是舉例子。

版本號可以不寫全,前幾位就可以了,Git會自動去找。當然也不能只寫前一兩位,因為Git可能會找到多個版本號,就無法確定是哪一個了。

 

二、總結一下:

  • HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。

  • 要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。

 

謝謝!!!