2016-07-14 104 views
1

後的文件在主分支 當時做的不便,於是做了git add . 然後不期而遇git checkout -f恢復git的結帳-f

現在文件丟失 如何恢復?

+1

」當切換分支時,即使索引或工作樹不同於HEAD,這也是用來丟棄本地更改。「 - 沒有提交的本地更改已經消失。 –

回答

1

查找影響給定路徑的上次提交。由於該文件不在HEAD提交中,因此該提交必須將其刪除。

git rev-list -n 1 HEAD -- <file_path> 

然後在提交前籤的版本,使用插入符號(^)符號:

git checkout <deleting_commit>^ -- <file_path> 

或者在一個命令,如果$file是有問題的文件。

git的結帳$(git rev-list -n 1 HEAD -- "$file")^ -- "$file"

0

git reflog可以幫助你。在列表中找到您想要的提交(假設它是e870e41),並且您可以重置爲(使用:git reset --hard e870e41)。 「