Wie bereits gesagt, um vom Status auszuschließen, verwenden Sie einfach:
git status -uno # must be "-uno" , not "-u no"
Wenn Sie stattdessen aktuell nicht verfolgte Dateien dauerhaft ignorieren möchten, können Sie im Stammverzeichnis Ihres Projekts Folgendes starten:
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
Bei jedem nachfolgenden Aufruf von git status
werden diese Dateien explizit ignoriert.
UPDATE : Der obige Befehl hat einen kleinen Nachteil: Wenn Sie noch keine .gitignore
Datei haben, ignoriert sich Ihr Gitignore selbst! Dies geschieht, weil die Datei .gitignore
erstellt wird, bevor die git status --porcelain
ausgeführt wird. Wenn Sie noch keine .gitignore
Datei haben, empfehle ich Folgendes:
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
Dadurch wird eine Unterschale erstellt, die vor dem Erstellen der .gitignore
Datei abgeschlossen wird.
BEFEHLSERKLÄRUNG, da ich viele Stimmen bekomme (danke!) Ich denke, ich sollte den Befehl besser ein wenig erklären:
git status --porcelain
wird anstelle von verwendet, git status --short
weil manuelle Zustände "Geben Sie die Ausgabe in einem einfach zu analysierenden Format für Skripte an. Dies ähnelt der kurzen Ausgabe, bleibt jedoch über Git-Versionen hinweg und unabhängig von der Benutzerkonfiguration stabil." Wir haben also sowohl die Analysefähigkeit als auch die Stabilität;
grep '^??'
filtert nur die Zeilen ??
, die mit beginnen , die laut Git-Status-Handbuch den nicht verfolgten Dateien entsprechen;
cut -c4-
Entfernt die ersten 3 Zeichen jeder Zeile, wodurch nur der relative Pfad zur nicht verfolgten Datei angegeben wird.
- Die
|
Symbole sind Pipes , die die Ausgabe des vorherigen Befehls an die Eingabe des folgenden Befehls übergeben.
- Die Symbole
>>
und >
sind Umleitungsoperatoren , die die Ausgabe des vorherigen Befehls an eine Datei anhängen oder eine neue Datei überschreiben / erstellen.
Eine weitere Variante für diejenigen, die es vorziehen ,sed
anstelle von grep
und zu verwenden cut
, hier ist ein anderer Weg:
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore