我知道,当文件被删除的git的存储信息,我可以检查单次的提交,看看哪些文件已被删除,但有会产生跨库的寿命每删除文件列表的命令?如何在git存储库中列出所有已删除的文件?
回答
git log --diff-filter=D --summary
见Find and restore a deleted file in a Git repository
如果你不希望所有有关其呈交他们在被删除的信息,你可以在里面添加grep delete
。
git log --diff-filter=D --summary | grep delete
这你想要做什么,我想:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
...这我刚吃完更多或更少直接从this other answer。
+1用于对结果文件进行排序 – jupp0r 2014-05-26 13:22:04
如果你只在看到当前删除的文件感兴趣,你可以使用这个:
git ls-files --deleted
,如果你再要删除它们(如果你删除了他们没有使用“混帐RM”)管道该结果xargs的混帐RM
git ls-files --deleted | xargs git rm
这仅显示索引中已在工作副本中删除的文件。 OP希望所有的文件都被删除。 – 2012-09-25 20:58:58
这是一个伟大的观点,马克斯。感谢您指出了这一点。 – 2014-04-25 02:09:25
或'git rm $(git ls-files --deleted)' – HerrSerker 2015-07-08 12:42:50
如果你想以某种方式限制的结果这里是一个很好的一个:
$ git log --diff-filter=D --summary | sed -n '/^commit/h;/\/some_dir\//{G;s/\ncommit \(.*\)/ \1/gp}'
delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7
你会得到来自some_dir
删除所有文件(见sed命令)与承诺数一起在它发生。任何sed的正则表达式会做(我用这个来找到已删除的文件类型等)
援引this计算器答案。 漂亮整洁的方式来获得变型的-(A:增加,M:修改,d:删除)为得到了改变每个文件。
git diff --name-status
这将让你在所有分支删除所有文件,其路径排序列表:
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
作品在msysgit(2.6.1.windows.1)。请注意,我们需要“删除模式100”为git的文件可能已被作为COMMITED模式100644或100755.
由于Windows不具备grep
命令,这个工作对我来说在PowerShell中:
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
- 1. 如何列出过去已删除的Fossil存储库的所有文件?
- 2. 列出Git存储库中存在的所有文件
- 3. 如何从存储库中删除所有已删除的文件?
- 4. git - 从存储库中删除文件
- 5. 如何在Git中查找所有已删除的文件
- 6. 恢复已删除的git存储库
- 7. 如何从Git存储库中删除“排除的”文件?
- 8. 删除Git存储库,但保留所有文件
- 9. 如何列出git存储库中的所有文本(非二进制)文件?
- 10. 如何删除我的存储库的所有Git痕迹?
- 11. 列出所有已推送到远程Git存储库的文件
- 12. 在GIT中删除“在外部存储库”中的文件
- 13. 如何在Git中从远程存储库中删除已删除的文件夹?
- 14. 从git存储库中恢复已删除的文件或文件夹
- 15. 如何从git存储库中删除或忽略.rb〜文件?
- 16. 如何让git从存储库中删除文件
- 17. 如何从ditwich从git存储库中删除文件?
- 18. 如何从git存储库中删除* ALL *文件和目录?
- 19. 如何从git存储库中完全删除文件?
- 20. 如何从git裸远程存储库中删除文件?
- 21. 如何使用Windows Tortoise从Git存储库中删除文件?
- 22. 如何在不删除Git历史记录的情况下从git存储库中删除文件/文件夹
- 23. 如何获取已应用于git存储库中文件的所有标签?
- 24. 从本地存储库中删除“已删除”文件
- 25. 删除Git存储库中的所有标签
- 26. 如何删除.gitignore中列出但仍在存储库中的文件?
- 27. JGit删除git存储库
- 28. Git删除服务器上不在存储库中的文件
- 29. 如何删除已上传到存储库的文件?
- 30. 如何列出所有存储库?
**警告:**这列出了您删除的所有文件。如果你删除了一个文件,然后创建具有相同名称的新文件,它会** **显示在此列表中,即使有一个现存的文件存在。 – 2014-08-09 08:43:21
你也应该看看** git whatchanged **命令。它太酷了。 – 2015-03-19 19:30:56
这将列出重命名为删除。要跳过这些使用'git log - 查找 - 重命名--diff-filter = D --summary | grep的delete' – 2015-07-21 13:00:11