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


在使用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查看命令歷史,以便確定要回到未來的哪個版本。

  •  


免責聲明!

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



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