git學習之git reflog和git cherry-pick

牛肉燒酒發表於2019-04-06

​ git reflog : 顯示整個本地倉儲的commit, 包括所有branch的commit, 甚至包括已經撤銷的commit, 只要HEAD發生了變化, 就會在reflog裡面看得到. git log只包括當前分支的commit.

場景: 當我們一連提交了六個記錄,但是突然發現第二個記錄到第六個記錄是不需要的,激動的我們立刻回退到第一個記錄的時刻,可是最後被告知,第四個和第五個記錄不是自己做的,但是回退到第一個記錄把其他五個記錄都刪了,我們要如何找回呢?

git學習之git reflog和git cherry-pick
git學習之git reflog和git cherry-pick

​ 答案是使用 git reflog , 他可以顯示所有的commit記錄!

git學習之git reflog和git cherry-pick

​ 接下來只要將HEAD指向記錄六的雜湊碼就可以讓六個檔案都恢復:

git學習之git reflog和git cherry-pick
git學習之git reflog和git cherry-pick

​ **場景變化:**當我們回退到第一個記錄的時候,我們又提交了記錄七,當我們使用git reflog找回了記錄二到記錄五,可是記錄七的程式碼丟了,如何找回呢?

​ 使用 git cherry-pick 檔案七的雜湊碼

git學習之git reflog和git cherry-pick

​ 至此,七個提交記錄的程式碼都找回來啦!

相關文章