Chciałbym zobaczyć listę plików zmodyfikowanych od ostatniego zatwierdzenia, jak git status
pokazuje, ale zależy mi tylko na plikach znajdujących się w jednym katalogu. Czy jest na to sposób? Próbowałem git status <directory>
, ale wygląda na to, że robi to coś zupełnie innego (wyświetla listę wszystkich zmienionych plików, tak jak by to było, gdybym napisał git add <directory>
pierwszy).
Dokumentacja git-status niewiele mówi, poza tym, że akceptuje te same opcje, co git-commit (ale celem git-commit nie jest pokazywanie list zmienionych plików).
Powodem, który
git status
przyjmuje te same opcje,git commit
jest to, że celemgit status
jest pokazanie, co by się stało, gdybyś zatwierdził te same opcje, do których przeszedłeśgit status
. Pod tym względemgit status
jest naprawdęgit commit --preview
.Aby uzyskać to, czego chcesz, możesz zrobić to, co pokazuje zmiany etapowe:
i to, co pokazuje zmiany niestacjonarne:
lub to, które pokazuje oba:
źródło
git ls-files --others <directory_in_question>
lubls-files -o
.git ls-files -o
pokazuje rekursywnie pliki w katalogach poza sceną, podczas gdygit status
pokazuje tylko katalog najwyższego poziomu. I należałoby skomponowaćgit diff
,git ls-files
wyprowadzić i odtworzyć wszystkie kodowanie kolorami itp., Któregit status
zapewnia, jeśli ma być zamiennikiemgit status
. Chciałbym też zobaczyć rozwiązanie tego problemu!Najprostsze rozwiązanie:
git status | grep -v '\.\.\/'
Oczywiście to odrzuca kolory.
źródło
Uwaga, jeśli uprościsz sprawdzenie statystyk git bez wchodzenia do katalogu git;
I wywołanie tego skryptu prosta
gitstat /path/to/foo-project
. Możesz go również używać podczasfoo-project
robienia,gitstat .
więc załóżmy, że jest krótszy niżgit status -s
,git diff --stat
lubgit diff --stat HEAD
jeśli zawsze używasz konsoli zamiast GUI.Kredyty:
źródło