git 超前一個版本 落後一個版本的解決方案

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

 

首先打開終端,最好是從SourceTree裏面打開,菜單欄有個終端按鈕。code

而後輸入:it

 

$ git reset --hard HEAD^

這句話的意思是將本身最近的一次提交撤銷,回到push以前的狀態。可是全部commit的內容就都消失了。很是不建議用這個參數,會犧牲太多的代碼。。終端

若是不想讓commit消失,能夠改一下參數。用這個參數能夠保證你提交的代碼原封不動的保存下來。前提是你本地的工做臺是乾淨的。若是不是請把全部代碼都暫存。總結

 

$ git reset --soft HEAD^

 

執行這句話以後從新拉取一遍代碼就能夠了,push的都會撤銷回來。co

 

若是想一次回退多個push,能夠這樣:(例子是撤銷最近三次的提交)工作

 

$ git reset --soft HEAD~3

 

若是想回退到某個指定版本,在終端中輸入:push

 

$ git reset --soft 1234567

1234567是要回退到的版本號,根據具體狀況而定,這裏只是舉例子。版本

 

版本號能夠不寫全,前幾位就能夠了,Git會自動去找。固然也不能只寫前一兩位,由於Git可能會找到多個版本號,就沒法肯定是哪個了。參數

 

最後總結一下:

 

  • HEAD指向的版本就是當前版本,所以,Git容許咱們在版本的歷史之間穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log能夠查看提交歷史,以便肯定要回退到哪一個版本。

  • 要重返將來,用git reflog查看命令歷史,以便肯定要回到將來的哪一個版本。

相關文章
相關標籤/搜索