470 Stimmen

Git: nur "ungetrackte" Dateien auflisten (auch eigene Befehle)

Gibt es eine Möglichkeit, einen Befehl zu verwenden wie git ls-files um nur nicht verfolgte Dateien anzuzeigen?

Der Grund für meine Frage ist, dass ich den folgenden Befehl verwende, um alle gelöschten Dateien zu verarbeiten:

git ls-files -d | xargs git rm

Ich hätte gern etwas Ähnliches für nicht verfolgte Dateien:

git some-command --some-options | xargs git add

Ich konnte die -o Option zu git ls-files aber das ist nicht das, was ich will, weil es auch ignorierte Dateien anzeigt. Ich konnte auch mit dem folgenden langen und hässlichen Befehl arbeiten:

git status --porcelain | grep '^??' | cut -c4- | xargs git add

Es scheint, dass es einen besseren Befehl geben muss, den ich hier verwenden kann. Und wenn es keinen gibt, wie kann ich dann eigene Git-Befehle erstellen?

714voto

takeshin Punkte 46602

Um nicht verfolgte Dateien aufzulisten, versuchen Sie es:

git ls-files --others --exclude-standard

Wenn Sie die Ausgabe über die Pipeline an xargs ist es ratsam, Leerräume zu beachten, indem man git ls-files -z y xargs -0 :

git ls-files -z -o --exclude-standard | xargs -0 git add

Nettes Alias für das Hinzufügen nicht verfolgter Dateien:

au = !git add $(git ls-files -o --exclude-standard)

Edita: Als Referenz: git-ls-files

87voto

Dustin Punkte 85400

Wenn Sie nur nicht verfolgte Dateien entfernen wollen, tun Sie dies:

git clean -df

hinzufügen. x zu, wenn Sie auch speziell ignorierte Dateien einbeziehen wollen. Ich verwende git clean -dfx a Los den ganzen Tag über.

Sie können ein benutzerdefiniertes Git erstellen, indem Sie einfach ein Skript namens git-whatever und sie auf Ihrem Weg zu haben.

67voto

Mike Lococo Punkte 637

git add -A -n wird tun, was Sie wollen. -A fügt alle nicht verfolgten und geändert Dateien in das Repo, -n macht es zu einem dry-run wo das Hinzufügen nicht durchgeführt wird, aber die Statusausgabe jede Datei auflistet, die würde wurden hinzugefügt.

50voto

Valentyna Punkte 381

Alles ist sehr einfach

So erhalten Sie eine Liste aller nicht verfolgten Dateien Befehl verwenden Git-Status con Option -u (--untracked-files)

git status -u

33voto

youurayy Punkte 1565

Die akzeptierte Antwort stürzt bei Dateinamen mit Leerzeichen ab. Ich bin mir im Moment nicht sicher, wie ich den Alias-Befehl aktualisieren soll, also werde ich die verbesserte Version hier einfügen:

git ls-files -z -o --exclude-standard | xargs -0 git add

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X