錯誤的git reset操作之後的補救措施

2022-08-22 11:30:11 字數 1237 閱讀 4874

(相關命令:git reset、git log、git reflog,要看文件的話用--help。)

這是一次愚蠢的行為之後的總結……避免我之後忘記了解決方法【逃

get reset --hard是乙個非常危險的行為。

比如該專案,git log顯示:

$ git log

commit cc53a1925fb7895ad88d155a43f3012249615919 (head ->master)

author: ***

date: mon mar 12 16:47:00 2018 +0800

version

1commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e

author: ***

date: mon mar 12 16:46:46 2018 +0800

version

0

此時執行git reset --hard head^(回退為head前一次提交):

$ git reset --hard head^head is now at 1ca078c version 

0

此時再次檢視git log,發現version 1提交沒有了。git log只檢視當前提交的祖先。

$ git log

commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e (head ->master)

author: ***date: mon mar 12 16:46:46 2018 +0800version

0

此時可以git reflog,即檢視每一次head的變化,並reset到需要的commit。

$ git reflog

1ca078c (head -> master) head@: reset: moving to head^cc53a19 head@: commit: version 1

1ca078c (head -> master) head@: commit (initial): version 0

$ git reset cc53a19 --hard

head is now at cc53a19 version

1

或者用git log -g(即--walk-reflogs)檢視每一次head的變化的日誌,並進行reset。(**略

撤銷 Git reset操作

本文 找回git中丟失的commit 在使用git的過程中,有時候會因為一些誤操作,比如reset rebase merge等。特別是在commit之後又執行了git reset hard head強制回滾本地記錄以及檔案到伺服器版本,導致本地做的修改全部恢復到git當前分支的伺服器版本,同時自己的...

git reset 回退操作記錄

push到遠端的commit需要回退操作 例如 當前commit節點為d,之前有abc三個commit操作 git reset hard c hard 表示徹底清空當前工作目錄和暫存區的內容,當發現提交的d節點存在錯誤,需要回退到c節點時執行,執行後回退節點之後的所有更改都不會出現到當前工作目錄裡中...

Git reset命令的使用

weiweilong 關注 git reset 命令有三個主要選項 git reset soft git reset mixed git reset hard git reset soft 將head引用指向給定提交。索引和工作目錄的內容是不變的,在三個命令中對現有版本庫狀態改動最小。git res...