git checkout -f后恢复文件

时间:2016-07-14 15:06:21

标签: git github git-checkout

在主分支上做了smth 然后完成git add . 然后意外git checkout -f

现在文件丢失了 如何恢复?

2 个答案:

答案 0 :(得分:0)

查找影响给定路径的最后一次提交。由于该文件不在HEAD提交中,因此该提交必须已将其删除。

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

然后使用插入符号(^)符号检查提交时的版本:

git checkout <deleting_commit>^ -- <file_path>

或者在一个命令中,如果$file是相关文件。

git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"

答案 1 :(得分:-1)

git reflog可以帮到你。找到您希望在该列表中提交的提交(假设它为e870e41),您可以重置为该提交(使用:git reset --hard e870e41)。