Git:如何通过整个历史记录检出所有已删除的文件

时间:2019-03-24 07:52:26

标签: git git-checkout git-log

我想通过整个历史记录还原所有已删除的文件,这意味着要在删除该文件的提交之前将文件检出到提交中?

1 个答案:

答案 0 :(得分:3)

在bash上下文中*,您可以使用

从存储库中获得所有已删除文件的排序列表
<script type="text/javascript">
    var ip = "<?php echo gethostbyname('example.com'); ?>";
    alert(ip);
</script>

其中

git log --all --diff-filter=D --name-only --pretty=format:'' | sort | uniq 表示记录所有提交,而不考虑--all当前的位置

HEAD过滤器显示的提交符合以下条件:“ --diff-filter=D”,表示“已删除”

D输出文件名

--name-only关闭除文件名之外的任何其他输出

然后生成的git命令返回一个列表,该列表被发送到

--pretty=format:''对列表进行字母排序,然后

| sort仅对每个加倍的行保留一个实例(否则,文件删除然后重新创建然后再删除的文件将在列表中出现两次)


当然,您可能还希望限制范围以考虑历史遍历。如果仅需要从分支| uniq中删除的提交,则将其添加为super-feature作为日志记录(请参阅doc),如果省略,则回退到{{1 }}:

<revision range>

* (例如,在基于linux的系统上本地运行,或者在GitBash中用于Windows用户)

相关问题