可以从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