Git alle Dateien hinzufügen geändert, gelöscht und nicht verfolgt?

256

Gibt es eine Möglichkeit, alle Dateien hinzuzufügen, unabhängig davon, was Sie ihnen antun, ob sie gelöscht, nicht verfolgt usw. werden? wie für ein Commit. Ich möchte einfach nicht jedes Mal git addoder git rmalle meine Dateien bei jedem Commit haben müssen, besonders wenn ich an einem großen Produkt arbeite.

Wahnsinn
quelle

Antworten:

307

Versuchen:

git add -A

Warnung: Ab Git 2.0 (Mitte 2013) werden immer Dateien im gesamten Arbeitsbaum bereitgestellt .
Wenn Sie Dateien unter dem aktuellen Pfad Ihres Arbeitsbaums bereitstellen möchten, müssen Sie Folgendes verwenden:

git add -A .

Siehe auch: Unterschied von git add -Aundgit add .

Kilanash
quelle
Das hat bei mir nicht funktioniert ... Wie kann ich in dieser Diskussion meine Terminal-Ein- / Ausgabe anzeigen? Kopieren und Einfügen meiner Terminalausgabe als Antwort auf diese Diskussion?
Rakib
Hier ist das Problem, mit dem ich konfrontiert bin - stackoverflow.com/q/7726131/636762 - bitte helfen Sie mir in diesem
Rakib
Dies kann auch nicht funktionieren, wenn Ihre Git-Version alt ist. Ich habe ein Skript auf einem Server ausgeführt, auf dem git 1.5.2.5 ausgeführt wurde. git add -A funktionierte nicht. Aus dem Skript wurde keine Fehlermeldung gemeldet. Nur über die Befehlszeile stellte ich fest, dass -A keine legale Option zum Hinzufügen war.
Gleichnamiger
Aber warum muss ich jedes Mal Dateien hinzufügen, wenn ich ein Commit machen möchte? Jedes Mal, wenn ich Änderungen an einer Datei vorgenommen habe, muss ich sie hinzufügen.
Frade
3
So funktioniert Git. Sie müssen Ihrem Staging-Bereich Änderungen hinzufügen, bevor Sie ihn festschreiben. Beispielsweise können Sie einem Commit nur einige Dateien hinzufügen und Kommentare dazu bereitstellen, anstatt ständig alle Dateien. Hier ist eine praktische Erklärung, was dies tut und warum: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash
75

Versuchen

git add -u

Die uOption " " steht für Update. Dadurch wird das Repo aktualisiert und tatsächlich Dateien aus dem Repo gelöscht, das Sie in Ihrer lokalen Kopie gelöscht haben.

git add -u [filename]

um einen Löschvorgang für nur eine Datei durchzuführen. Nach dem Push befindet sich die Datei nicht mehr im Repo.

Alternative,

git add -A .

ist äquivalent zu

git add .

git add -u .

Beachten Sie das zusätzliche '.' auf git add -Aundgit add -u


Warnung: Ab Git 2.0 (Mitte 2013) werden immer Dateien im gesamten Arbeitsbaum bereitgestellt .
Wenn Sie Dateien unter dem aktuellen Pfad Ihres Arbeitsbaums bereitstellen möchten, müssen Sie Folgendes verwenden:

git add -A .

Siehe auch: Unterschied von git add -Aundgit add .

Matt Kneiser
quelle
42

Die folgende Antwort gilt nur für Git Version 1.x, aber für Git Version 2.x.

Sie wollen git add -A:

git add -A Stufen Alle;

git add . Stufen neu und modifiziert, ohne gelöscht;

git add -u Stufen geändert und gelöscht, ohne neue.

thebr0ken
quelle
Beachten Sie, dass dies nur für Git 1.x gilt. Für Git Version 2.x git add -Aist gleichbedeutend mit git add .. Sehen Sie hier für weitere Diskussionen.
Jdhao
27

git add --all oder git add -A oder git add -A . Stufen Alle

git add . Stufen neu & geändert, aber ohne gelöscht

git add -u Stufen geändert und gelöscht, aber ohne neue

git commit -aMittel git add -uundgit commit -m "message"

Führen Sie nach dem Schreiben dieses Befehls die folgenden Schritte aus: -

  1. Drücken Sie i
  2. Schreibe deine Nachricht
  3. Drücken Sie esc
  4. Drücken Sie :wq
  5. Drücken Sie enter

git add <list of files> bestimmte Datei hinzufügen

git add *.txt Fügen Sie alle txt-Dateien im aktuellen Verzeichnis hinzu

git add docs/*/txt Fügen Sie alle TXT-Dateien im Dokumentverzeichnis hinzu

git add docs/ Fügen Sie alle Dateien im Verzeichnis docs hinzu

git add "*.txt"oder git add '*.txt'fügen Sie alle Dateien im gesamten Projekt hinzu

akshay_rahar
quelle
12

Ich bin nicht sicher, ob gelöschte Dateien hinzugefügt werden, aber git add .vom Stamm werden alle nicht verfolgten Dateien hinzugefügt.

Bcherry
quelle
Siehe meine Antwort zum Hinzufügen gelöschter Dateien
Matt Kneiser
5

Dies ist meine Alternative (in jeder Bash):

$ git status -s|awk '{ print $2 }'|xargs git add

Zurücksetzen

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD
Giacomo Tesio
quelle
5

Ich habe das G2-Projekt verfasst, eine freundliche Umgebung für den Kommandozeilen-Git-Liebhaber.
Bitte beziehen Sie das Projekt von github - G2 https://github.com/orefalo/g2

Es enthält eine Reihe praktischer Befehle, von denen einer genau das ist, wonach Sie suchen: freeze

Einfrieren - Friert alle Dateien im Repository (Hinzufügungen, Löschungen, Änderungen) im Staging-Bereich ein und stellt diesen Inhalt für die Aufnahme in das nächste Commit bereit. Akzeptieren Sie auch einen bestimmten Pfad als Parameter

Olivier Refalo
quelle
5

Für neuere Version von Git.

Ich versuchte es git add -Aund dies veranlasste,

Warnung: Das Verhalten von 'git add --all (oder -A)' ohne Pfadargument aus einem Unterverzeichnis des Baums ändert sich in Git 2.0 und sollte nicht mehr verwendet werden. Führen Sie Folgendes aus, um Inhalte für den gesamten Baum hinzuzufügen:

git add --all: / (oder git add -A: /)

Führen Sie Folgendes aus, um den Befehl auf das aktuelle Verzeichnis zu beschränken:

git add --all. (oder git add -A.)

Bei der aktuellen Git-Version ist der Befehl auf das aktuelle Verzeichnis beschränkt.


Dann habe ich unten versucht was funktioniert hat .

git add --all :/
Parag Tyagi
quelle
3

Aus der Git-Dokumentation ab Version 2.0:

Führen Sie Folgendes aus, um Inhalte für den gesamten Baum hinzuzufügen:

git add --all :/

oder

git add -A :/

Führen Sie Folgendes aus, um den Befehl auf das aktuelle Verzeichnis zu beschränken:

git add --all .

oder

git add -A .
HOKBONG
quelle
2

Ich verwende die folgende Zeile, um alle geänderten und neu erstellten Dateien mit Ausnahme der in .gitignore aufgelisteten Dateien für die Bereitstellung bereitzustellen:

git add $(git ls-files -mo --exclude-standard)

(Die Syntax $ () gilt für die Bash-Shell.) Ich denke, dass die Befehlszeilenoption -mod auch die gelöschten Dateien hinzufügen sollte ... Oder wenn Sie Dateinamen mit eingebetteten Leerzeichen haben, sollte der folgende Einzeiler den Trick machen:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
Maurizio Loreti
quelle