Ich weiß, dass Git Informationen darüber speichert, wann Dateien gelöscht werden, und ich kann einzelne Commits überprüfen, um zu sehen, welche Dateien entfernt wurden, aber gibt es einen Befehl, der eine Liste aller gelöschten Dateien über die Lebensdauer eines Repositorys erstellt?
Antworten
Zu viele Anzeigen?git log --diff-filter=D --summary
Siehe Finden und Wiederherstellen einer gelöschten Datei in einem Git-Repository
Wenn Sie nicht alle Informationen darüber haben wollen, in welchem Commit sie entfernt wurden, können Sie einfach eine grep delete
da drin.
git log --diff-filter=D --summary | grep delete
Ich denke, dies entspricht Ihren Vorstellungen:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
... die ich mehr oder weniger direkt übernommen habe diese andere Antwort .
Dies gibt nur Dateipfade ohne andere Informationen aus:
BETA.md
CONTRIBUTING.md
files/en-us/api/file_api/index.html
files/en-us/games/index/index.md
files/en-us/games/visual-js_game_engine/index.html
files/en-us/games/visual_js_ge/index.html
files/en-us/games/visual_typescript_game_engine/index.html
...
Unter este Stack Overflow-Antwort.
Es ist eine ziemlich saubere Art und Weise, die Änderungsart zu erhalten (A:Hinzugefügt, M:Geändert, D:Gelöscht) für jede Datei, die geändert wurde.
git diff --name-status HEAD~1000
Und wenn Sie die Ergebnisse irgendwie einschränken wollen, haben wir hier ein schönes Beispiel:
$ 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
Sie erhalten alle Dateien gelöscht von some_dir
(siehe sed-Befehl) zusammen mit der Commit-Nummer, in der es passiert ist. Jede sed regex reicht aus (ich verwende dies, um gelöschte Dateitypen usw. zu finden)
- See previous answers
- Weitere Antworten anzeigen