如何在GitHub中的某个提交之前恢复文件?
答案 0 :(得分:2)
例如,如果要在提交f4l4fe1
之前检索单个文件,则可以执行以下操作:
git checkout f4l4fe1^ -- some/file.txt
(当您在git中向ref添加^
时,它表示该提交的父级。)您应该在工作树中找到some/file.txt
,但请注意它也将被暂存作为改变提交。
如果您只想查看上次提交时的工作树,可以将提交检出为分支:
git checkout f4l4fe1^
这使你进入一个被称为“独立的HEAD”的状态,你不再在某个特定的分支上,所以进行新的提交不会推进任何分支。要回到master
,比如说,你只需git checkout master
。
作为第三个选项,假设您要从该提交或整个子目录中提取整个目录,您可以使用git archive
并将输出通过管道传输到tar
,如:What's the best way to extract a tree from a git repository?