git reflog 時光穿梭機

2021-09-18 03:26:38 字數 841 閱讀 4247

一、問題描述

二、解決

小白花費一周時間做了git log如下所示6個功能。

commit的資訊就是做了6個功能,每個功能對應乙個commit的提交,分別是feature-1 到 feature-6」,然後執行強制回滾,git reset --hard 2216d4e。回滾到了feature-1上,並且回滾的時候加了--hard,導致之前feature-2 到 feature-6的所有**全部弄丟了,現在git log上顯示如下:

小白還在這個基礎上新新增了乙個commit提交,資訊叫feature-7,

現在情況就是feature-2到feature-6內容不見,還多了個feature-7,請問如何把丟失的**feature-2 到 feature-6全部恢復回來,並且feature-7的**也要保留呢?

使用命令:git reflog 和git cherry-pick

首先,在git終端輸git reflog,就會展示出所有你之前git操作。

git reflog
記好兩個值:4c97ff3和cd52afc,他們分別是feature-7和feature-6的hash碼。然後執行回滾,回到feature-6上:

git reset --hard cd52afc
好了,現在feature-6之前的**已經恢復,剩下就來加上feature-7,執行git cherry-pick命令,我們之前已經知道feature-7的hash碼為4c97ff3。期間可能有衝突,按提示解決即可。

git cherry-pick 4c97ff3
最終,問題得以解決,git log結果如下:

Git 時光穿梭機01

看這篇文章之前可以先閱讀 建立版本庫這篇文章 我們已經成功地新增並提交了乙個readme.txt檔案,現在是時候繼續工作了,於是,我們繼續修改readme.txt,改成如下內容 git is a distributed version control system git is free softw...

Git 版本穿梭 時光穿梭機

當你玩遊戲時,每玩一段時間都會存一下檔以免前面的進度丟失,在打厲害 boos 前,你也會選擇存檔,以免打不過而丟失進度,這個存檔被稱為 快照 git 允許你commit後的倉庫自由前進後退版本,當你從 0 到 1 完成乙個專案時,其中難免會出現修改多次,還有可能會出現檔案誤刪丟失等問題,只要你正確的...

2 時光穿梭機

根據廖雪峰的git教程進行學習,以問題的形式來學習,懶得記太多筆記 修改檔案之後如何操作提交?修改文件儲存 option 用git status檢視當前目錄的變動 option 用git diff檢視修改的內容 重新提交,git add git status git commit m note 中間...