Ich möchte eine Liste der Dateien sehen, die seit dem letzten Festschreiben geändert wurden, wie git status
Zeigt, aber ich kümmere mich nur um Dateien, die sich in einem einzelnen Verzeichnis befinden. Gibt es eine Möglichkeit, dies zu tun? Ich habe versucht git status <directory>
, Aber es scheint, dass dies etwas völlig anderes macht (listet alle geänderten Dateien auf, als ob ich zuerst git add <directory>
Geschrieben hätte).
Die Dokumentation zu git-status sagt nicht viel aus, abgesehen von der Tatsache, dass es dieselben Optionen akzeptiert wie git-commit (aber der Zweck von git-commit ist es nicht, Listen geänderter Dateien anzuzeigen).
Aus dem Verzeichnis heraus:
git status .
Sie können wirklich jeden Pfad verwenden, verwenden Sie diese Syntax:
git status <directoryPath>
Zum Beispiel für Verzeichnis mit Pfad "my/cool/path/here"
git status my/cool/path/here
Der Grund, warum git status
die gleichen Optionen wie git commit
verwendet, ist, dass der Zweck von git status
darin besteht, zu zeigen, was passieren würde, wenn Sie die gleichen Optionen verwenden würden, die Sie übergeben haben zu git status
. In dieser Hinsicht ist git status
wirklich git commit --preview
.
Um das zu bekommen, was Sie wollen, können Sie dies tun, wobei die gestaffelten Änderungen angezeigt werden:
git diff --stat --cached -- <directory_of_interest>
und das, was nicht inszenierte Änderungen zeigt:
git diff --stat -- <directory_of_interest>
oder das, was beides zeigt:
git diff --stat HEAD -- <directory_of_interest>
Einfachste Lösung:
git status | grep -v '\.\.\/'
Natürlich werden dabei die Farben verworfen.
Wenn Sie die Überprüfung der Git-Statistiken vereinfachen möchten, ohne in das Git-Verzeichnis zu wechseln, sollten Sie Folgendes beachten:
### Datei erstellen Sudo nano /usr/local/bin/gitstat[.____.[.____.‹### dies in #!/usr/bin/env bash dir = $ 1 if [[$ dir == ""]]; dann echo "Directory is required!" exit fi echo "Git stat for '$ dir'." git --git-dir = $ dir/.git --work-tree = $ dir diff --stat ### give exec perm Sudo chmod + x /usr/local/bin/gitstat
Und das einfache Skript aufrufen: gitstat /path/to/foo-project
. Sie können es auch verwenden, während Sie in foo-project
Gerade gitstat .
Ausführen, und so annehmen, dass es kürzer als git status -s
, git diff --stat
Oder git diff --stat HEAD
Ist, wenn Sie es immer sind mit Konsole anstelle von GUI.
Credits: