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 The optional configuration variable 'core.excludesfile' indicates a path to a
123 file containing patterns of file names to exclude from git-add, similar to
124 $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to
125 those in info/exclude. See linkgit:gitrepository-layout[5].
131 * Adds content from all `\*.txt` files under `Documentation` directory
132 and its subdirectories:
135 $ git add Documentation/\\*.txt
138 Note that the asterisk `\*` is quoted from the shell in this
139 example; this lets the command to include the files from
140 subdirectories of `Documentation/` directory.
142 * Considers adding content from all git-*.sh scripts:
148 Because this example lets shell expand the asterisk (i.e. you are
149 listing the files explicitly), it does not consider
154 When the command enters the interactive mode, it shows the
155 output of the 'status' subcommand, and then goes into its
156 interactive command loop.
158 The command loop shows the list of subcommands available, and
159 gives a prompt "What now> ". In general, when the prompt ends
160 with a single '>', you can pick only one of the choices given
161 and type return, like this:
165 1: status 2: update 3: revert 4: add untracked
166 5: patch 6: diff 7: quit 8: help
170 You also could say "s" or "sta" or "status" above as long as the
173 The main command loop has 6 subcommands (plus help and quit).
177 This shows the change between HEAD and index (i.e. what will be
178 committed if you say "git commit"), and between index and
179 working tree files (i.e. what you could stage further before
180 "git commit" using "git-add") for each path. A sample output
185 1: binary nothing foo.png
186 2: +403/-35 +1/-1 git-add--interactive.perl
189 It shows that foo.png has differences from HEAD (but that is
190 binary so line count cannot be shown) and there is no
191 difference between indexed copy and the working tree
192 version (if the working tree version were also different,
193 'binary' would have been shown in place of 'nothing'). The
194 other file, git-add--interactive.perl, has 403 lines added
195 and 35 lines deleted if you commit what is in the index, but
196 working tree file has further modifications (one addition and
201 This shows the status information and gives prompt
202 "Update>>". When the prompt ends with double '>>', you can
203 make more than one selection, concatenated with whitespace or
204 comma. Also you can say ranges. E.g. "2-5 7,9" to choose
205 2,3,4,5,7,9 from the list. If the second number in a range is
206 omitted, all remaining patches are taken. E.g. "7-" to choose
207 7,8,9 from the list. You can say '*' to choose everything.
209 What you chose are then highlighted with '*',
214 1: binary nothing foo.png
215 * 2: +403/-35 +1/-1 git-add--interactive.perl
218 To remove selection, prefix the input with `-`
225 After making the selection, answer with an empty line to stage the
226 contents of working tree files for selected paths in the index.
230 This has a very similar UI to 'update', and the staged
231 information for selected paths are reverted to that of the
232 HEAD version. Reverting new paths makes them untracked.
236 This has a very similar UI to 'update' and
237 'revert', and lets you add untracked paths to the index.
241 This lets you choose one path out of 'status' like selection.
242 After choosing the path, it presents diff between the index
243 and the working tree file and asks you if you want to stage
244 the change of each hunk. You can say:
247 n - do not stage this hunk
248 a - stage this and all the remaining hunks in the file
249 d - do not stage this hunk nor any of the remaining hunks in the file
250 j - leave this hunk undecided, see next undecided hunk
251 J - leave this hunk undecided, see next hunk
252 k - leave this hunk undecided, see previous undecided hunk
253 K - leave this hunk undecided, see previous hunk
254 s - split the current hunk into smaller hunks
255 e - manually edit the current hunk
258 After deciding the fate for all hunks, if there is any hunk
259 that was chosen, the index is updated with the selected hunks.
263 This lets you review what will be committed (i.e. between
268 The interactive mode does not work with files whose names contain
269 characters that need C-quoting. `core.quotepath` configuration can be
270 used to work this limitation around to some degree, but backslash,
271 double-quote and control characters will still have problems.
275 linkgit:git-status[1]
279 linkgit:git-commit[1]
280 linkgit:git-update-index[1]
284 Written by Linus Torvalds <torvalds@osdl.org>
288 Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
292 Part of the linkgit:git[1] suite