iOS SourceTree超前一個版本,落後N個版本
阿新 • • 發佈:2018-11-16
聯絡人:石虎 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
檢視命令歷史,以便確定要回到未來的哪個版本。
謝謝!!!