it-swarm.com.de

Git-Status - Gibt es eine Möglichkeit, Änderungen nur in einem bestimmten Verzeichnis anzuzeigen?

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).

129
Kuba Suder

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
184
Sam Doidge

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>
30
CB Bailey

Einfachste Lösung:

  1. Gehe in das Verzeichnis
  2. git status | grep -v '\.\.\/'

Natürlich werden dabei die Farben verworfen.

13
Can Berk Güder

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:

2
K-Gun