6 git-add - Füge Dateiinhalte zum Index hinzu.
11 'git add' [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]
12 [--all | [--update | -u]] [--refresh] [--ignore-errors] [--]
17 Dieser Befehl fügt den aktuellen Inhalt neuer oder veränderter Dateien
18 zum Index hinzu, und stellt diese Änderungen somit für die nächste
19 Eintragung (commit) bereit.
21 Der "Index" enthält eine Momentaufnahme des Inhalts des Arbeitsbaumes,
22 und es ist genau diese Momentaufnahme die bei der nächsten Eintragung
23 (commit) genommen wird. Darum muß man nachdem man Änderungen im
24 Arbeitsbereich durchgeführt hat und bevor man die Eintragung (commit)
25 ausführt, die neuen oder geänderten Dateien mit der 'git-add' Anweisung
26 in den Index aufnehmen.
28 Diese Anweisung kann vor einer Eintragung (commit) mehrfach ausgeführt
29 werden. Es wird lediglich der Inhalt der angegebenen Datei(en) zum
30 Ausführungszeitpunkt hinzugefügt. Soll eine spätere Änderung einer dieser
31 Dateien in die Eintragung (commit) aufgenommen werden, so muß 'git-add'
32 neuerlich aufgerufen werden.
34 Der Befehl 'git status' kann verwendet werden um eine Übersicht darüber
35 zu erhalten, welche für die nächste Eintragung (commit) vorgesehene
36 Dateien verändert wurden.
38 Der Befehl 'git add' wird standardmäßig keine ignorierten Dateien
39 hinzufügen. Wenn ignorierte Dateien (.gitignore) explizit in der
40 Befehlszeile angegeben wurden, wird 'git add' fehlschlagen und eine
41 Liste aller ignorierten Dateien ausgeben. Ignorierte Dateien die über
42 eine rekursiche Verzeichnis Navigation oder durch von git durchgeführtes
43 'globbing' (Platzhalter Auflösung z.B. *.jpg) erreicht wurden, werden
44 stillschweigend ignoriert. Der 'git add' Befehl kann das Hinzufügen
45 ignorierter Dateien mit der Option '-f' (force) erzwingen.
47 Für andere Wege, Inhalte zu einer Eintragung (commit) hinzuzufügen, siehe auch linkgit:git-commit[1] .
52 Dateien aus denen Inhalte hinzugefügt werden sollen.
53 Dateisuchkriterien (z.B. '*.c') können verwendet werden um alle
54 passenden Dateien hinzuzufügen. Es kann auch ein Pfadname
55 angegeben werden, um rekursiv alle in diesem Pfad befindlichen
56 Dateien hinzuzufügen (z.B. 'dir' für 'dir/datei1' und
61 Füge die Datei(en) nicht tatsächlich hinzu, sondern zeige
62 nur ob sie existieren.
66 Gib ausführliche Informationen aus.
70 Erzwinge das Hinzufügen normalerweise ignorierter Dateien.
74 Füge geänderte Inhalte im Arbeitsbereich interaktiv zum
75 Index hinzu. Optionale Pfad Argumente können verwendet
76 werden um die Operation auf einen spezifischen Teil des
77 Arbeitsbereichs einzuschränken. Siehe ''Interaktiver Modus''
82 Ähnlich dem Interativen Modus, nur wird die initiale
83 Befehlsschleife umgangen und vor dem Verlassen, der 'patch'
84 Subbefehl mit jedem der angegebenen filepattern aufgerufen.
88 Aktualisiere nur jene Dateien, die git bereits kennt, stelle
89 veränderte Inhalte zur Eintragung (commit) zur Verfügung, und
90 markiere gelösche Dateien zur Entfernung. Das ist ähnlich zu
91 dem was "git commit -a" bei der Vorbereitung zur Eintragung
92 (commit) durchführt, mit der Ausnahme, daß '--update' auf
93 die in der Befehlszeile angegebenen Pfade beschränkt ist.
94 Sind keine Pfade angegeben, werden alle verfolgten Dateien in
95 allen Verzeichnissen und ihren Unterverzeichnissen aktualisiert.
99 Aktualisiere Dateien die git bereits kennt (gleich wie bei
100 '\--update'), und füge alle noch nicht verfolgten Dateien die
101 nicht mittels des '.gitignore' Mechanismus ignoriert werden
105 Füge keine Datei(en) hinzu, sondern aktualisiere lediglich
106 deren stat() Information im Index.
109 Konnten einige Dateien aufgrund von Fehlern beim Indizieren
110 nicht hinzugefügt werden, dann fahre mit dem Hinzufügen weiter
111 ohne die Operation abzubrechen. Der Befehl wird trotzdem
112 mit einem Fehlerwert ungleich 0 beendet.
114 Diese Option kann dazu verwendet werden, Befehlszeilenoptionen
115 von der Liste von Dateien zu trennen. Dies ist sinnvoll, wenn
116 Dateinamen mit Befehlszeilenoptionen verwechselt werden könnten.
122 Mit der optionalen Konfigurationsvariable 'core.excludesfile' kann eine Datei
123 angegeben werden, welche Dateisuchkriterien (z.B. '*.log') für von git-add zu
124 ignorierende Dateien enthält. Dieser Mechanismus ist ähnlich zu
125 $GIT_DIR/info/exclude. Dateisuchkriterien im excludesfile werden zusätzlich
126 zu jenen in info/exclude angewandt. Siehe auch linkgit:gitrepository-layout[5].
131 * Füge die Inhalte aller `\*.txt` Dateien unter dem `Documentation` Verzeichnis
132 und seinen Unterverzeichnissen hinzu:
135 $ git add Documentation/\\*.txt
138 Anmerkung: das Sternchen `\*` wird in diesem Beispiel vom Befehlsprozessor
139 (shell) nicht automatisch erweitert, wodurch der git add Befehl auch
140 Unterverzeichnisse des `Documentation/` Verzeichnisses erfassen kann.
142 * Füge die Inhalte aller git-*-s Skripte hinzu:
148 Dieses Beispiel läßt dem Befehlsprozessor (shell) die Erweiterung des
149 Sternchens durchführen (git erhält bereits eine explizite Dateiliste
150 übergeben), und so kann zB `subdir/git-foo.sh` nicht gefunden werden.
154 Wird git im interaktiven Modus gestartet, zeigt es zuerst die Ausgabe
155 des 'status' Unterbefehls, und beginnt dann mit der interaktiven
158 Diese zeigt eine Liste der möglichen Unterbefehle und frägt "What now> ".
159 Wenn die Frage mit einem einzelnen '>' endet, kann man im Allgemeinen
160 aus einer der folgenden Optionen wählen und diese mit der Eingabetaste
165 1: status 2: update 3: revert 4: add untracked
166 5: patch 6: diff 7: quit 8: help
170 Man kann weiters "s" oder "sta" oder "status" eingeben, solange die
171 Auswahl eindeutig ist.
173 Die Hauptbefehlsschleife hat 6 Unterbefehle (sowie zusätzlich 'help' und 'quit')
177 Zeigt den Unterschied zwischen HEAD und dem Index (also was
178 eingetragen wird wenn man "git commit" ausführt), sowie zwischen
179 dem Index und den Dateien im Arbeitsbereich (also was man vor einem
180 "git-commit" mittels "git-add" hinzufügen könnte) für jeden Pfad.
181 Eine Beispielausgabe:
185 1: binary nothing foo.png
186 2: +403/-35 +1/-1 git-add--interactive.perl
189 Es zeigt sich, daß foo.png im Vergleich mit dem HEAD geändert wurde,
190 (da es sich um eine Binärdatei handelt wird keine Zeilenanzahl gezeigt),
191 und daß kein Unterschied zwischen dem Index und der Version im
192 Arbeitsbereich besteht (Wäre diese ebenfalls unterschiedlich, würde
193 'binary' anstatt 'nothing' angezeigt werden).
194 Die andere Datei, git-add--interactive.perl, hat 403 hinzugefügte
195 und 35 gelöschte Zeilen wenn man das einträgt (commited) was sich
196 aktuell im Index befindet, und im Arbeitsbereich befinden sich
197 weitere Änderungen (1 Zeile hinzugefügt, 1 Zeile gelöscht).
201 Zeigt die Status Information und wartet mit der Meldung "Update>>"
202 auf weitere Eingaben. Wenn die Meldung mit doppelten '>>' endet,
203 kann man, getrennt durch Leerzeichen oder Beistriche, mehrere
204 Operationen auswählen. Man kann auch ganze Bereiche angeben, z.B.
205 "2-5 7,9" um 2,3,4,5,7,9 aus der Liste auszuwählen. Wird die zweite
206 Nummer eines Bereichs nicht angegeben, reicht dieser bis an das
207 Ende der Liste, zB "7-" um 7,8,9 aus der Liste auszuwählen.
208 Durch '*' werden alle Listeneinträge ausgewählt.
210 Alle ausgewählten Listeneinträge werden wie folgt mit einem
215 1: binary nothing foo.png
216 * 2: +403/-35 +1/-1 git-add--interactive.perl
219 Ein '-' vor der Option macht die Auswahl wieder rückgängig:
225 Nachdem die Auwahl getroffen wurde kann durch Eingabe einer Leerzeile
226 der Inhalt der ausgewählten Dateien in den Index aufgenommen werden.
229 Diese Option ist sehr ähnlich zu 'update', nur wird die im Index
230 gespeicherte Änderungsinformation für die ausgewählten Dateien
231 auf die im HEAD gespeicherte Version zurückgesetzt. Werden neue
232 Dateien zurückgesetzt, so wird die Information darüber aus git
237 Mit einer zu 'update' und 'revert' sehr ähnlichen Bedienweise
238 können mit git noch nicht verwaltete Dateien zum Index hinzugefügt
243 Ermöglicht die Auswahl eines Pfades aus der 'status' Liste.
244 Anschließend wird der 'diff' zwichen dem Index und der Datei
245 im Arbeisbereich angezeigt und gefragt ob die einzelnen
246 Brocken hinzugefügt werden sollen. Man kann auswählen zwischen
247 (Überetzung in Klammern):
250 y - stage this hunk (Brocken hinzufügen)
251 n - do not stage this hunk (Brocken nicht hinzufügen)
252 a - stage this and all the remaining hunks in the file (diesen und alle restlichen Brocken aus dieser Datei hinzufügen)
253 d - do not stage this hunk nor any of the remaining hunks in the file (diesen und alle restlichen Brocken aus dieser Datei nicht hinzufügen)
254 j - leave this hunk undecided, see next undecided hunk (lasse den Brocken unbestimmt, gehe zum nächsten unbestimmten Brocken)
255 J - leave this hunk undecided, see next hunk (lasse den Brocken unbestimmt, gehe zum nächsten Brocken)
256 k - leave this hunk undecided, see previous undecided hunk (lasse den Brocken unbestimmt, gehe zum vorhergehenden unbestimmten Brocken)
257 K - leave this hunk undecided, see previous hunk (lasse den Brocken unbestimmt, gehe zum vorhergehendenBrocken)
258 s - split the current hunk into smaller hunks (Zerteile den aktuellen Brocken in kleinere Teile)
259 e - manually edit the current hunk (händisches Zerlegen des aktuellen Brockens)
260 ? - print help (Hilfe ausgeben)
262 Nachdem zumindest ein Source Brocken ausgewählt wurde werden die
263 ausgewählten Brocken in den Index aufgenommen.
267 Teigt jene Änderungen an die eingetragen (commited) werden würden (also
268 zwischen HEAD und Index).
272 Der Interaktive Modus hat Probleme beim Verarbeiten von Dateien deren
273 Namen Zeichen enthalten die in C speziell behandelt werden müssen.
274 Eine spezielle 'core.quotepath' Einstellung kann teilweise zur Umgehung
275 dieses Problems verwendet werden, aber '\', '"', und Kontrollzeichen
276 sind weiterhin problematisch.
280 linkgit:git-status[1]
284 linkgit:git-commit[1]
285 linkgit:git-update-index[1]
289 Geschrieben von Linus Torvalds <torvalds@osdl.org>
293 Dokumentiert durch Junio C Hamano und der git-list <git@vger.kernel.org>.
297 Teil der linkgit:git[1] suite