git 版本回退,撤銷git pull

在程序開發過程中,難免會有“後悔”的時候。此時,如果你用了版本控制系統git,那麼還有的救,當然前提是每個版本都提交了。

git版本回退

1.先查詢一下當前狀態,把當前沒提交的先提交

# 查詢狀態
git status -s

查詢結果如果返回有東西,,就說明還有未提交的修改,那麼就趕緊提交

git add .
git commit -m "..."

2.git log列出所有版本,如下圖

git log --pretty=oneline

在這裏插入圖片描述
3.上圖第1行是當前所在的版本,即HEAD指針所指向的版本。如果想回退到上一個版本,可以用git reset --hard HEAD^。如果想回退到上n個版本,可以用git reset --hard HEAD~n,或者直接在上圖中找到你想回退的版本的id,用前四五個字母指示即可。例如:

# 回退到了第4行的版本,也就是當前版本的前3個版本
git reset --hard 46d7
# 或者還可以用HEAD指針來相對指示
git reset --hard HEAD~3
# 或下面這樣,略麻煩
git reset --hard HEAD^^^

撤銷git pull

還有一些時候,你可能是和夥伴一起合作,或者用別人的代碼,遠程的倉庫已經更新了好幾個版本,但是因爲某些原因自己本地的代碼還沒動。此時你習慣性地git pull一下,還很順利。
結果呢,本地的其他代碼A倉庫又依賴着之前那個沒動的版本old倉庫,這git pull一下,本地變成了最新版本new倉庫,A倉庫因爲版本問題只能用old倉庫纔不會出錯,現在需要從new倉庫回退到old倉庫。怎麼辦?遠程倉庫更新了幾個版本,你也不知道,用HEAD~nn是幾呢?用id來回退,但是你記得old倉庫的id嗎?太難了…下面就講一下,如何處理那一時手賤所敲下的git pull

撤銷git pull的關鍵是git reflog命令,它能夠顯示你操作的步驟,和相應步驟的id號。如下圖,我已經成功撤銷了。第1行是上一步操作,成功回退到old倉庫;第2行是上上步操作,是手賤的git pull;第3行就是最原始的操作,克隆代碼 ,就是從這一行看到它的id號,然後git reset --hard da04即可!
在這裏插入圖片描述

git fsck --lost-found操作,參考:https://www.cnblogs.com/dongcanliang/p/11162235.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章