如何恢复已在Git存储库中删除的文件

可以从git中检索已从存储库的本地副本中删除的文件。

运行以下命令:


git ls-files -d | xargs git checkout

这个例子首先显示了一个git仓库是最新的,这是通过调用git status命令完成的。 本地驱动器上的文件被删除。 然后再次调用git status命令并显示我们刚删除的文件丢失。 然后使用-d参数调用git ls-files命令以列出所有已删除的文件。 该列表通过管道传输到git checkout命令以从存储库获取文件。 最后,调用git status命令并显示存储库是最新的,并且已从存储库中恢复先前删除的文件。 恢复的文件的版本是在Git中提交的最新版本。 如果最新版本的文件没有提交,修改后的内容不会被重新发布。

输出将是:


$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

$ rm logs/donotremove.txt

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add/rm ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

        deleted:    logs/donotremove.txt

no changes added to commit (use "git add" and/or "git commit -a")

$ git ls-files -d | xargs git checkout

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

参考文献:

Git

最近评论