Merge branch 'master' of ssh://Culex@repo.or.cz/srv/git/gitman-de
[gitman-de.git] / git-commit-de.txt
blob40109610feeb69b3ce8381bd7d2577f641ff0c45
1 git-commit(1)
2 =============
4 NAME
5 ----
6 git-commit - Trage Änderungen im Projektarchiv (repository) ein
8 SYNOPSIS
9 --------
10 [verse]
11 'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend]
12            [(-c | -C) <commit>] [-F <file> | -m <msg>]
13            [--allow-empty] [--no-verify] [-e] [--author=<author>]
14            [--cleanup=<mode>] [--] [[-i | -o ]<file>...]
16 DESCRIPTION
17 -----------
18 Speichere den aktuellen Inhalt des Index gemeinsam mit einer die Änderungen
19 des Benutzers beschreibenden Log Nachricht als neue Eintragung (commit) im 
20 Projektarchiv.
22 Der neue Inhalt kann auf verschiedene Arten angegeben werden:
24 1. Durch Verwendung von 'git-add', um Änderungen, vor Aufruf des 
25    'git commit' Befehls, schrittweise zum Index hinzuzufügen (Anmerkung: 
26    auch lediglich modifizierte Dateien müssen "hinzugefügt" werden);
28 2. Durch Verwendung von 'git-rm' um Dateien, vor Aufruf des 'git commit'
29    Befehls, aus dem Arbeitsbereich, und dem Index zu entfernen, 
31 3. Durch die Angabe von Dateien als Argumente des 'git commit' Befehls, 
32    wodurch die Eintragung (commit) aller im Index vorgemerkten Änderungen 
33    ignoriert wird, und statt dessen der aktuelle Inhalt der aufgezählten
34    Dateien im Projektarchiv (repository) eingetragen wird.
36 4. Durch Verwendung des -a Schalters des 'git commit' Befehls, um zuvor
37    automatisch die Änderungen aller bekannten Dateien (also aller Dateien 
38    die im Index bereits bekannt sind) hinzuzufügen ('git add'), und um
39    automatisch alle Dateien die aus dem Arbeitsbereich gelöscht wurden zu
40    entfernen ('git rm').
42 5. Durch Verwendung des --interactive Schalters des 'git commit' Befehls,
43    um zuvor für jede Datei einzeln zu entscheiden ob diese Teil der 
44    Eintragung (commit) sein soll. Dies wird derzeit durch 
45    'git-add --interactive' bewerkstelligt.
47 Der 'git-status' Befehl kann, durch Angabe der selben Parameter die man 
48 für 'git commit' benutzen würde, dazu verwendet werden, um einen Überblick
49 darüber zu erhalten, welche Dateien bei jeder der obigen Optionen in der
50 nächsten Eintragung (commit) beinhaltet sein würden.
52 Wurde eine Eintragung (commit) durchgeführt und unmittelbar danach
53 ein Fehler erkannt, so kann diese mit 'git-reset' rückgängig gemacht werden.
56 OPTIONS
57 -------
58 -a::
59 --all::
60         Führe die Bereitstellung (staging) und Eintragung (commit) aller
61         modifizierten und gelöschten Dateien durch.
62         Es werden ausschließlich Dateien behandelt die in git bekannt 
63         sind, alle für git neuen Dateien werden somit nicht eingetragen.
66 -C <commit>::
67 --reuse-message=<commit>::
68         Nimm eine existierende Eintragung (commit) und verwende die 
69         Eintragungsbemerkung (commit message) und die Autoreninformation
70         (inklusive Zeitstempel) für die aktuelle Eintragung.
72 -c <commit>::
73 --reedit-message=<commit>::
74         Ähnlich wie '-C' allerdings wird mit '-c' der Editor
75         aufgerufen, wodurch der Benutzer die Eintragungsbemerkung
76         vor der Eintragung überarbeiten kann.
78 -F <file>::
79 --file=<file>::
80         Nimm die Eintragungsbemerkung (commit message) der spezifizierten
81         Datei. Mit '-' wird die Bemerkung von der Standard Eingabe gelesen.
83 --author=<author>::
84         Überschreibe den Namen des in der Eintragung verwendeten Authors.
85         Benutze das `A U Thor <author@example.com>` Format.
87 -m <msg>::
88 --message=<msg>::
89         Verwende die angegebene <msg> als Eintragungsbemerkung
90         (commit message).
92 -t <file>::
93 --template=<file>::
94         Verwende den Inhalt der angegebenen Datei als initiale
95         Version der Eintragungsbemerkung. Der Editor wird aufgerufen
96         um weitere Änderungen vornehmen zu können. Wird eine Bemerkung
97         mittels der Optionen '-m' oder '-F' angegeben, so hat die
98         '-t' Option keine Auswirkung. Diese Angabe überschreibt die
99         'commit.template' Konfigurationsvariable.
101 -s::
102 --signoff::
103         Füge eine Unterschriftenzeile am Ende der Eintragungsbemerkung
104         (commit message) hinzu.
106 -n::
107 --no-verify::
108         Diese Option schaltet die pre-commit und commit-msg 
109         Einsprungspunkte (hooks) aus. Siehe auch linkgit:githooks[5].
111 --allow-empty::
112         Normalerweise ist das Aufzeichnen einer Eintragung welche exakt
113         den gleichen Inhalt wie sein Vorgänger hat ein Fehler, und 
114         'git commit' verhindert eine derartige Eintragung. Mit dieser 
115         Option kann diese Sicherheitsvorkehrung ausgeschalten werden, 
116         was hauptsächlich für fremde SCM Schnittstellen-Skripte
117         verwendet wird.
119 --cleanup=<mode>::
120         Diese Option bestimmt, wie Eintragungsbemerkungen (commit
121         message) 'aufgeräumt' werden. Der '<mode>' kann sein: 
122         'verbatim', 'whitespace', 'strip', oder 'default'. 
123         Der 'default' Modus entfernt führende und am Ende befindliche
124         Leerzeilen und #Bemerkungen wenn die Eintragungsbemerkung 
125         editiert wurde. Ansonst werden nur Leerzeichen (whitespaces)
126         entfernt. Der 'verbatim' Modusläßt die Eintragungsbemerkung
127         gänzlich unverändert, 'whitespace' entfernt vorne und hinten
128         die Leerzeichen und 'strip' entfernt sowohl Leerzeichen 
129         wie auch Kommentare (Zeilen die mit '#' beginnen).
131 -e::
132 --edit::
133         Die Eintragungsbemerkungen (commit message) einer Datei ('-F'),
134         der Befehlszeile ('-m') oder einer Eintragung ('-C') werden
135         normalerweise nicht weiter bearbeitet. Diese Option ermöglicht
136         das weitere Editieren dieser Bemerkung bevor die Eintragung 
137         (commit) durchgeführt wird.
139 --amend::
140         Ändere (ersetzend) die letzte Eintragung (commit) im Projektarchiv 
141         (tip of branch). Der Arbeitsbaum im Index kann vorher wie gewöhnlich
142         mit 'git add', etc bearbeitet werden (das beinhaltet auch -i/-o 
143         und explizite Pfadangaben). Der Editor wird mit der 
144         Eintragungsbemerkung (commit message) der letzten Version im 
145         Projektarchiv vorbefüllt. Die so erzeugte Eintragung (commit) ersetzt
146         die letze Eintragung im Projektarchiv, welche damit im 
147         Projektarchiv ausgelöscht wird. Handelte es sich um eine
148         Zusammenführung (merge), erhält die Eintragung die selben Eltern 
149         wie die ersetzte Eintragung.
152 Der Befehl entspricht in etwa:
153 ------
154         $ git reset --soft HEAD^
155         $ ... führe die notwendigen Änderungen im Index durch ...
156         $ git commit -c ORIG_HEAD
158 ------
159 er kann aber auch dazu verwendet werden um eine zusammenführende Eintragung
160 (merge commit) zu ersetzen
163 -i::
164 --include::
165         Bevor die Eintragung der im Index gespeicherten Änderungen
166         durchgeführt wird, füge den Inhalt der in der Befehlszeile
167         angegebenen Dateipfade ebenfalls dazu. Dies wird normalerweise
168         nur beim Abschließen der Zusammenführung konkurierender
169         Änderungen (conflicted merge) verwendet.
171 -o::
172 --only::
173         Führe die Eintragung (commit) ausschließlich mit den in der
174         Befehlszeile angegebenen Dateipfaden durch, und ignoriere sämtliche
175         im Index vorbereiteten Änderungen. Dies ist der Standardmodus 
176         von 'git commit' wenn Dateipfade in der Befehlszeile
177         angegeben wurden. Wird diese Option gemeinsam mit '--amend'
178         angegeben, dann müssen keine Dateiangaben getätigt werden. 
179         Dies kann verwendet werdenum die letzte Eintragung abzuändern 
180         (zB Eintragungsbemerkung korrigieren) ohne die zwischenzeitlich
181         bereits im Index vorbereiteten Änderungen zu übernehmen.
182         
183 -u[<mode>]::
184 --untracked-files[=<mode>]::
185         Zeige alle von git nicht verwalteten (untracked) Dateien an 
186         (Standard: 'all')
188 Der <mode> Parameter ist optional, und steuert die Behandlung der Dateien.
189 Die möglichen Optionen sind:
192         - 'no'     - zeige keine von git nicht verwalteten Dateien an
193         - 'normal' - zeige unverwaltete Dateien und Verzeichnisse
194         - 'all'    - zeige zusätzlich die einzelnen Dateien in den
195         unverwalteten Verzeichnissen
198 Siehe linkgit:git-config[1] für die Verwendung von Konfigurationsvariablen
199 um die Standardoption die verwendet wird wenn der Parameter nicht angegeben 
200 wird zu ändern.
202 -v::
203 --verbose::
204         Zeige den Unterschied (diff) zwischen der HEAD Eintragung und dem
205         was eingetragen werden würde am Ende der Eintragungsbemerkung.
206         Beachte: Die Zeilen der diff Ausgabe enthalten keine 
207         führenden Kommentarzeichen ('#')!
209 -q::
210 --quiet::
211         Unterdrücke die zusammenfassende Nachricht über die Eintragung.
213 \--::
214         Diese Option kann dazu verwendet werden, Befehlszeilenoptionen
215         von der Liste von Dateien zu trennen. Dies ist sinnvoll, wenn
216         Dateinamen mit Befehlszeilenoptionen verwechselt werden könnten.
218 <file>...::
219         Werden in der Befehlszeile Dateien angegeben, so wird der Inhalt
220         dieser Dateien eingetragen, ohne die bereits im Index vorbereiteten
221         Änderungen aufzuzeichnen. Die Dateiinhalte werden außerdem für
222         die nächste Eintragung im Index bereitgestellt (zusätzlich zu den
223         dort bereits vorbereiteten Änderungen).
226 EXAMPLES
227 --------
228 Beim Aufzeichnen der eigenen Arbeit, wird der Inhalt der veränderten Dateien
229 im Arbeitsbereich mit 'git add' temporär in einem Zwischenbereich 
230 ("Index" genannt) abgelegt. Die mit 'git add' vorbereiteten Änderungen einer
231 Datei können mit `git reset HEAD -- <file>` wieder aus dem Index entfernt
232 werden, ohne dadurch die Datei selbst zu verändern. Nachdem die gewünschten
233 Änderungen im Index vorbereitet wurden kann dieser mit dem 'git commit' 
234 Befehl im Projektarchiv eingetragen (commited) werden. Ein Beispiel:
236 ------------
237 $ edit hello.c
238 $ git rm goodbye.c
239 $ git add hello.c
240 $ git commit
241 ------------
243 Anstatt die Dateien nach jeder Änderung einzeln im Index vorzubereiten 
244 kann man 'git commit' anweisen die Änderungen aller aktuell in git 
245 verwalteten Dateien selbständig mit 'git add' und 'git rm' vorzubereiten.
246 Wurden keine anderen Dateien im Arbeitsbereich geändert, erzielt das 
247 diese Beispiel das gleiche Resultat wie das vorhergehende Beispiel:
249 ------------
250 $ edit hello.c
251 $ rm goodbye.c
252 $ git commit -a
253 ------------
255 Der Befehl 'git commit -a' betrachtet zuerst den Arbeitsbereich, erkennt
256 das hello.c geändert und goodbye.c entfernt wurden, und führt intern die 
257 notwendigen 'git add' und 'git rm' funktionen aus.
259 Wurden im Index Änderungen an mehreren Dateien vorbereitet, kann
260 die Reihenfolge in der diese Änderungen eingetragen (commited) 
261 werden, durch die Angabege einzelner Dateipfade geändert werden.
262 Werden Dateipfade angegeben, trägt der Befehl ausschließlich
263 Änderungen dieser Dateien im Projektarchiv ein.
265 ------------
266 $ edit hello.c hello.h
267 $ git add hello.c hello.h
268 $ edit Makefile
269 $ git commit Makefile
270 ------------
272 Die hier erzeugte Eintragung (commit) enthält ausschließlich
273 die Änderungen der Datei 'Makefile'. Die vorbereiteten Änderungen
274 an 'hello.c' und 'hello.h' sind in dieser Eintragung nicht enthalten,
275 sie bleiben allerdings weiterhin im Index vorbereitet und
276 gehen nicht verloren. Wird anschließend der folgende Befehl aufgerufen:
278 ------------
279 $ git commit
280 ------------
282 werden in einer zweiten Eintragung (commit) die Änderungen an
283 'hello.c' und 'hello.h' im Projektarchiv eingetragen.
285 Nach einer Zusammenführung (merge, durchgeführt mit 'git-merge'
286 oder 'git-pull') die Aufgrund von Konflikten abgebrochen wird,
287 sind sauber zusammengeführte Pfade bereits im Index vorbereitet
288 und könnten eingetragen (commited) werden. Alle Pfade mit
289 Konflikten bleiben im nicht zusammengeführten Zustand. Mittels
290 'git status' kann überprüft werden, welche Dateipfade die 
291 Konflikte enthalten. Nachdem die Konflikte im Arbeitsbereich
292 manuell aufgelöst wurden können die betroffenen Dateien wie
293 gewohnt mit 'git add' im Index für die Eintragung vorbereitet
294 werden:
296 ------------
297 $ git status | grep unmerged
298 unmerged: hello.c
299 $ edit hello.c
300 $ git add hello.c
301 ------------
303 Nachdem die Konflikte aufgelöst und im Index vorbereitet wurden
304 zeigt 'git ls-files -u' die betreffenden Dateipfade nicht mehr an.
305 Durch 'git commit' können die Änderungen abschließend im 
306 Projektarchiv eingetragen (commited) werden:
308 ------------
309 $ git commit
310 ------------
312 Mann kann die '-a' Option allerdings auch einfach dazu verwenden 
313 um weniger tippen zu müssen. Eine Einschränkung besteht allerdings
314 dahingehend, daß dies bei einer Zusammenführung (merge) nicht
315 verwendet werden kann, da diese mit einer einzelnen Eintragung (commit)
316 erfolgen muß. Bei Verwendung der '-a' Option sind keine weiteren
317 Pfadangaben erlaubt (Ausnahme bei gleichzeitiger Verwendung der '-i' Option). 
320 DISCUSSION
321 ----------
323 Obwohl es technisch nicht erforderlich ist, ist es eine gebräuchlich
324 die Eintragungsbemerkung (commit message) mit einer einzelnen kurzen
325 Zusammenfassung (weniger als 50 Zeichen) zu beginnen, gefolgt von einer
326 Leerzeile und weiterführender Information. So können zB Werkzeuge die 
327 Eintragungen in emails verpacken die erste Zeile als Betreff und den 
328 Rest als Mailinhalt verwenden.
330 include::i18n.txt[]
332 ENVIRONMENT AND CONFIGURATION VARIABLES
333 ---------------------------------------
334 Der Editor zum Bearbeiten der Eintragungsbemerkung wird durch die
335 GIT_EDITOR Umgebungsvariable, die core.editor Konfigurationsvariable
336 die VISUAL Umgebungsvariable oder die EDITOR Umgebungsvariable 
337 festgelegt (in dieser Reihenfolge).
339 HOOKS
340 -----
341 Dieser Befehl kann die folgenden Einsprungspunkte (hooks) aufrufen:
342 `commit-msg`, `prepare-commit-msg`, `pre-commit` und `post-commit`.
343 Siehe linkgit:githooks[5] für weitere Information.
346 SEE ALSO
347 --------
348 linkgit:git-add[1],
349 linkgit:git-rm[1],
350 linkgit:git-mv[1],
351 linkgit:git-merge[1],
352 linkgit:git-commit-tree[1]
354 Author
355 ------
356 Geschrieben von Linus Torvalds <torvalds@osdl.org> und
357 Junio C Hamano <gitster@pobox.com>
362 Teil der linkgit:git[1] Suite.