Wiem, że Git przechowuje informacje o tym, kiedy pliki są usuwane, i jestem w stanie sprawdzić poszczególne zatwierdzenia, aby zobaczyć, które pliki zostały usunięte, ale czy istnieje polecenie, które wygeneruje listę każdego usuniętego pliku w całym okresie życia repozytorium?
304
git diff --name-status commit_hash
.Odpowiedzi:
Zobacz Znajdź i przywróć usunięty plik w repozytorium Git
Jeśli nie chcesz wszystkich informacji o zatwierdzeniu, w którym zostały usunięte, możesz po prostu dodać
grep delete
tam.źródło
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
ponieważ jeśli wiadomość zatwierdzenia zawiera słowo „usuń”, zostanie również odebrana. Użyjgrep 'delete mode'
zamiast tego.To robi, co chcesz, myślę:
... które właśnie wziąłem mniej więcej bezpośrednio z tej drugiej odpowiedzi .
źródło
Jeśli chcesz zobaczyć tylko aktualnie usunięte pliki, możesz użyć tego:
jeśli chcesz je usunąć (na wypadek, gdybyś je usunął nie używając „git rm”) potok, który prowadzi do xargs git rm
źródło
git rm $(git ls-files --deleted)
Cytując tę odpowiedź przepełnienia stosu.
Jest to całkiem fajny sposób na uzyskanie typu zmiany (A: Dodano, M: Zmodyfikowano, D: Usunięto) dla każdego pliku, który został zmieniony.
źródło
A jeśli chcesz w jakiś sposób ograniczyć wyniki, oto fajny:
Wszystkie pliki zostaną usunięte z
some_dir
(patrz polecenie sed) wraz z numerem zatwierdzenia, w którym się to wydarzyło. Zrobi to każde wyrażenie regularne (używam tego do znajdowania usuniętych typów plików itp.)źródło
git log --diff-filter=D .
Ponieważ Windows nie ma
grep
polecenia, działało to dla mnie w PowerShell:źródło
Select-String
?Pokaż wszystkie usunięte pliki w some_branch
lub
źródło
git diff origin/master...origin/some_branch --name-status | grep ^D
lubgit diff origin/master...origin/some_branch --name-status --diff-filter=D
Spowoduje to wyświetlenie listy wszystkich plików, które zostały usunięte we wszystkich gałęziach, posortowanych według ścieżki:
Działa w msysgit (2.6.1.windows.1). Uwaga: potrzebujemy „trybu usuwania 100”, ponieważ pliki git mogły zostać zatwierdzone jako tryb 100644 lub 100755.
źródło