File: grandmaster.po

package info (click to toggle)
gitmagic 20140125-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,176 kB
  • ctags: 20
  • sloc: makefile: 92; sh: 38
file content (775 lines) | stat: -rw-r--r-- 29,670 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
# Git Magic - A guide to using Git
# This file is distributed under the GNU GENERAL PUBLIC LICENSE Version 3.
# Benn Lynn <benlynn@gmail.com>, 2007.
# Armin Stebich <armin@lordofbikes.de>, 2010, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: Git Magic deutsch\n"
"Report-Msgid-Bugs-To: bennlynn@gmail.com\n"
"POT-Creation-Date: 2010-10-30 08:21+0300\n"
"PO-Revision-Date: 2011-07-07 19:00+0200\n"
"Last-Translator: Armin Stebich <armin@lordofbikes.de>\n"
"Language-Team: DE <gitmagic@lordofbikes.de>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: UTF-8\n"
"Plural-Forms: \n"

#. type: Plain text
#: ../en/grandmaster.txt:2
msgid "== Git Grandmastery =="
msgstr "== Git für Fortgeschrittene =="

#. type: Plain text
#: ../en/grandmaster.txt:7
msgid ""
"By now, you should be able to navigate the *git help* pages and understand "
"almost everything. However, pinpointing the exact command required to solve "
"a given problem can be tedious. Perhaps I can save you some time: below are "
"some recipes I have needed in the past."
msgstr ""
"Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das "
"meiste verstanden haben. Trotzdem kann es langwierig sein, den exakten "
"Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. Vielleicht kann "
"ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich "
"in der Vergangenheit gebraucht habe."

#. type: Plain text
#: ../en/grandmaster.txt:9
msgid "=== Source Releases ==="
msgstr "=== Quellcode veröffentlichen ==="

#. type: Plain text
#: ../en/grandmaster.txt:12
msgid ""
"For my projects, Git tracks exactly the files I'd like to archive and "
"release to users. To create a tarball of the source code, I run:"
msgstr ""
"Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren "
"und für andere Benutzer veröffentlichen will. Um ein tarball-Archiv des "
"Quellcodes zu erzeugen, verwende ich den Befehl:"

#. type: Plain text
#: ../en/grandmaster.txt:14
#, no-wrap
msgid " $ git archive --format=tar --prefix=proj-1.2.3/ HEAD\n"
msgstr " $ git archive --format=tar --prefix=proj-1.2.3/ HEAD\n"

#. type: Plain text
#: ../en/grandmaster.txt:16
msgid "=== Commit What Changed ==="
msgstr "=== 'Commite' Änderungen ==="

#. type: Plain text
#: ../en/grandmaster.txt:19
msgid ""
"Telling Git when you've added, deleted and renamed files is troublesome for "
"certain projects. Instead, you can type:"
msgstr ""
"Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, "
"ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben:"

#. type: Plain text
#: ../en/grandmaster.txt:22
#, no-wrap
msgid ""
" $ git add .\n"
" $ git add -u\n"
msgstr ""
" $ git add .\n"
" $ git add -u\n"

#. type: Plain text
#: ../en/grandmaster.txt:27
msgid ""
"Git will look at the files in the current directory and work out the details "
"by itself. Instead of the second add command, run `git commit -a` if you "
"also intend to commit at this time. See *git help ignore* for how to specify "
"files that should be ignored."
msgstr ""
"Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die "
"Details selbst erarbeiten. Anstelle des zweiten Befehl kann man auch `git "
"commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. "
"Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die "
"ignoriert werden sollen."

#. type: Plain text
#: ../en/grandmaster.txt:29
msgid "You can perform the above in a single pass with:"
msgstr "Man kann das aber auch in einem einzigen Schritt ausführen mit:"

#. type: Plain text
#: ../en/grandmaster.txt:31
#, no-wrap
msgid " $ git ls-files -d -m -o -z | xargs -0 git update-index --add --remove\n"
msgstr " $ git ls-files -d -m -o -z | xargs -0 git update-index --add --remove\n"

#. type: Plain text
#: ../en/grandmaster.txt:35
msgid ""
"The *-z* and *-0* options prevent ill side-effects from filenames containing "
"strange characters. As this command adds ignored files, you may want to use "
"the `-x` or `-X` option."
msgstr ""
"Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch "
"Dateinamen mit ungewöhnlichen Zeichen. Da diese Anweisung aber auch zu "
"ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option "
"hinzufügen."

#. type: Plain text
#: ../en/grandmaster.txt:37
msgid "=== My Commit Is Too Big! ==="
msgstr "=== Mein 'Commit' ist zu groß! ==="

#. type: Plain text
#: ../en/grandmaster.txt:41
msgid ""
"Have you neglected to commit for too long? Been coding furiously and "
"forgotten about source control until now? Made a series of unrelated "
"changes, because that's your style?"
msgstr ""
"Hast Du es zu lange versäumt zu 'comitten'? Hast Du so versessen "
"programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? Machst "
"Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist?"

#. type: Plain text
#: ../en/grandmaster.txt:43
msgid "No worries. Run:"
msgstr "Keine Sorge, gib ein:"

#. type: Plain text
#: ../en/grandmaster.txt:45
#, no-wrap
msgid " $ git add -p\n"
msgstr " $ git add -p\n"

#. type: Plain text
#: ../en/grandmaster.txt:49
msgid ""
"For each edit you made, Git will show you the hunk of code that was changed, "
"and ask if it should be part of the next commit. Answer with \"y\" or \"n\". "
"You have other options, such as postponing the decision; type \"?\" to learn "
"more."
msgstr ""
"Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die "
"sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. "
"Antworte mit \"y\" für Ja oder \"n\" für Nein. Du hast auch noch andere "
"Optionen, z.B. den Aufschub der Entscheidung; drücke \"?\" um mehr zu "
"erfahren."

#. type: Plain text
#: ../en/grandmaster.txt:51
msgid "Once you're satisfied, type"
msgstr "Wenn Du zufrieden bist, gib"

#. type: Plain text
#: ../en/grandmaster.txt:53
#, no-wrap
msgid " $ git commit\n"
msgstr " $ git commit\n"

#. type: Plain text
#: ../en/grandmaster.txt:56
msgid ""
"to commit precisely the changes you selected (the 'staged' changes). Make "
"sure you omit the *-a* option, otherwise Git will commit all the edits."
msgstr ""
"ein um exakt die ausgewählten Änderungen zu 'comitten' (die \"inszenierten\" "
"Änderungen). Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls "
"wird Git alle Änderungen 'comitten'."

#. type: Plain text
#: ../en/grandmaster.txt:63
msgid ""
"What if you've edited many files in many places? Reviewing each change one "
"by one becomes frustratingly mind-numbing. In this case, use *git add -i*, "
"whose interface is less straightforward, but more flexible. With a few "
"keystrokes, you can stage or unstage several files at a time, or review and "
"select changes in particular files only. Alternatively, run *git commit \\--"
"interactive* which automatically commits after you're done."
msgstr ""
"Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? Jede "
"Datei einzeln nachzuprüfen ist frustrierend und ermüdend. In diesem Fall "
"verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber "
"sehr flexibel. Mit ein paar Tastendrücken kannst Du mehrere geänderte "
"Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') "
"oder Änderungen einzelner Dateien nachprüfen und hinzufügen. Alternativ "
"kannst Du *git commit \\--interactive* verwenden, was dann automatisch die "
"ausgewählten Änderungen 'commited' nachdem Du fertig bist."

#. type: Plain text
#: ../en/grandmaster.txt:65
msgid "=== The Index: Git's Staging Area ==="
msgstr "=== Der Index: Git's Bereitstellungsraum ==="

#. type: Plain text
#: ../en/grandmaster.txt:71
msgid ""
"So far we have avoided Git's famous 'index', but we must now confront it to "
"explain the above. The index is a temporary staging area. Git seldom "
"shuttles data directly between your project and its history. Rather, Git "
"first writes data to the index, and then copies the data in the index to its "
"final destination."
msgstr ""
"Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir "
"uns mit ihm auseinandersetzen um das bisherige zu erklären. Der Index ist "
"ein temporärer Bereitstellungsraum. Git tauscht selten Daten direkt zwischen "
"Deinem Projekt und seiner Versionsgeschichte aus. Vielmehr schreibt Git die "
"Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an "
"ihren eigentlichen Bestimmungsort."

#. type: Plain text
#: ../en/grandmaster.txt:77
msgid ""
"For example, *commit -a* is really a two-step process. The first step places "
"a snapshot of the current state of every tracked file into the index. The "
"second step permanently records the snapshot now in the index. Committing "
"without the *-a* option only performs the second step, and only makes sense "
"after running commands that somehow change the index, such as *git add*."
msgstr ""
"Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. Der erste "
"Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten "
"Datei im Index. Der zweite Schritt speichert dauerhaft den Schnappschuß, der "
"sich nun im Index befindet. Ein 'Commit' ohne die *-a* Option führt nur den "
"zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung "
"angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*."

#. type: Plain text
#: ../en/grandmaster.txt:79
msgid ""
"Usually we can ignore the index and pretend we are reading straight from and "
"writing straight to the history. On this occasion, we want finer control, so "
"we manipulate the index. We place a snapshot of some, but not all, of our "
"changes into the index, and then permanently record this carefully rigged "
"snapshot."
msgstr ""
"Normalerweise können wir den Index ignorieren und so tun als würden wir "
"direkt aus der Versionsgeschichte lesen oder in sie schreiben. In diesem "
"Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. Wir "
"erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im "
"Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß "
"permanent."

#. type: Plain text
#: ../en/grandmaster.txt:81
msgid "=== Don't Lose Your HEAD ==="
msgstr "=== Verliere nicht Deinen KOPF ==="

#. type: Plain text
#: ../en/grandmaster.txt:83
msgid ""
"The HEAD tag is like a cursor that normally points at the latest commit, "
"advancing with each new commit. Some Git commands let you move it. For "
"example:"
msgstr ""
"Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten "
"'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. Einige Git "
"Anweisungen lassen Dich ihn manipulieren. Zum Beispiel:"

#. type: Plain text
#: ../en/grandmaster.txt:85
#, no-wrap
msgid " $ git reset HEAD~3\n"
msgstr " $ git reset HEAD~3\n"

#. type: Plain text
#: ../en/grandmaster.txt:87
msgid ""
"will move the HEAD three commits back. Thus all Git commands now act as if "
"you hadn't made those last three commits, while your files remain in the "
"present. See the help page for some applications."
msgstr ""
"bewegt den HEAD Bezeichner drei 'Commits' zurück. Dadurch agieren nun alle "
"Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, "
"während deine Dateien unverändert erhalten bleiben. Siehe auf der Git "
"Hilfeseite für einige Anwendungsbeispiele."

#. type: Plain text
#: ../en/grandmaster.txt:89
msgid ""
"But how can you go back to the future? The past commits know nothing of the "
"future."
msgstr ""
"Aber wie kannst Du zurück in die Zukunft? Die vergangenen 'Commits' wissen "
"nichts von der Zukunft."

#. type: Plain text
#: ../en/grandmaster.txt:91
msgid "If you have the SHA1 of the original HEAD then:"
msgstr "Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann:"

#. type: Plain text
#: ../en/grandmaster.txt:93
#, no-wrap
msgid " $ git reset 1b6d\n"
msgstr " $ git reset 1b6d\n"

#. type: Plain text
#: ../en/grandmaster.txt:95
msgid ""
"But suppose you never took it down? Don't worry: for commands like these, "
"Git saves the original HEAD as a tag called ORIG_HEAD, and you can return "
"safe and sound with:"
msgstr ""
"Aber stell Dir vor, Du hast ihn niemals notiert? Keine Sorge: Für solche "
"Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen "
"ORIG_HEAD und Du kannst gesund und munter zurückkehren mit:"

#. type: Plain text
#: ../en/grandmaster.txt:97
#, no-wrap
msgid " $ git reset ORIG_HEAD\n"
msgstr " $ git reset ORIG_HEAD\n"

#. type: Plain text
#: ../en/grandmaster.txt:99
msgid "=== HEAD-hunting ==="
msgstr "=== KOPF-Jagd ==="

#. type: Plain text
#: ../en/grandmaster.txt:101
msgid ""
"Perhaps ORIG_HEAD isn't enough. Perhaps you've just realized you made a "
"monumental mistake and you need to go back to an ancient commit in a long-"
"forgotten branch."
msgstr ""
"Möglicherweise reicht ORIG_HEAD nicht aus. Vielleicht hast Du gerade "
"bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu "
"einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück."

#. type: Plain text
#: ../en/grandmaster.txt:106
msgid ""
"By default, Git keeps a commit for at least two weeks, even if you ordered "
"Git to destroy the branch containing it. The trouble is finding the "
"appropriate hash. You could look at all the hash values in `.git/objects` "
"and use trial and error to find the one you want. But there's a much easier "
"way."
msgstr ""
"Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar "
"wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. Das "
"Problem ist, den entsprechenden SHA1-Wert zu finden. Du kannst Dir alle SHA1-"
"Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten "
"'Commit' findest. Aber es gibt einen viel einfacheren Weg."

#. type: Plain text
#: ../en/grandmaster.txt:108
msgid ""
"Git records every hash of a commit it computes in `.git/logs`. The "
"subdirectory `refs` contains the history of all activity on all branches, "
"while the file `HEAD` shows every hash value it has ever taken. The latter "
"can be used to find hashes of commits on branches that have been "
"accidentally lopped off."
msgstr ""
"Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. "
"Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen "
"'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese "
"Bezeichnung hatten. Die letztere kann verwendet werden um SHA1-Werte von "
"'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich "
"gestutzt wurde."

#. type: Plain text
#: ../en/grandmaster.txt:110
msgid ""
"The reflog command provides a friendly interface to these log files. Try"
msgstr ""
"Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen "
"Logdateien. Versuche"

#. type: Plain text
#: ../en/grandmaster.txt:112
#, no-wrap
msgid "  $ git reflog\n"
msgstr "  $ git reflog\n"

#. type: Plain text
#: ../en/grandmaster.txt:114
msgid "Instead of cutting and pasting hashes from the reflog, try:"
msgstr ""
"Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche:"

#. type: Plain text
#: ../en/grandmaster.txt:116
#, no-wrap
msgid " $ git checkout \"@{10 minutes ago}\"\n"
msgstr " $ git checkout \"@{10 minutes ago}\"\n"

#. type: Plain text
#: ../en/grandmaster.txt:118
msgid "Or checkout the 5th-last visited commit via:"
msgstr "Oder rufe den fünftletzten 'Commit' ab, mit:"

#. type: Plain text
#: ../en/grandmaster.txt:120
#, no-wrap
msgid " $ git checkout \"@{5}\"\n"
msgstr " $ git checkout \"@{5}\"\n"

#. type: Plain text
#: ../en/grandmaster.txt:122
msgid ""
"See the ``Specifying Revisions'' section of *git help rev-parse* for more."
msgstr ""
"Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für "
"mehr."

#. type: Plain text
#: ../en/grandmaster.txt:125
msgid ""
"You may wish to configure a longer grace period for doomed commits. For "
"example:"
msgstr ""
"Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' "
"konfigurieren. Zum Beispiel:"

#. type: Plain text
#: ../en/grandmaster.txt:127
#, no-wrap
msgid "  $ git config gc.pruneexpire \"30 days\"\n"
msgstr "  $ git config gc.pruneexpire \"30 days\"\n"

#. type: Plain text
#: ../en/grandmaster.txt:130
msgid ""
"means a deleted commit will only be permanently lost once 30 days have "
"passed and *git gc* is run."
msgstr ""
"bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, "
"nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde."

#. type: Plain text
#: ../en/grandmaster.txt:132
msgid "You may also wish to disable automatic invocations of *git gc*:"
msgstr ""
"Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen:"

#. type: Plain text
#: ../en/grandmaster.txt:134
#, no-wrap
msgid "  $ git config gc.auto 0\n"
msgstr "  $ git config gc.auto 0\n"

#. type: Plain text
#: ../en/grandmaster.txt:136
msgid ""
"in which case commits will only be deleted when you run *git gc* manually."
msgstr ""
"wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell "
"aufrufst."

#. type: Plain text
#: ../en/grandmaster.txt:138
msgid "=== Building On Git ==="
msgstr "=== Auf Git bauen ==="

#. type: Plain text
#: ../en/grandmaster.txt:140
msgid ""
"In true UNIX fashion, Git's design allows it to be easily used as a low-"
"level component of other programs, such as GUI and web interfaces, "
"alternative command-line interfaces, patch managements tools, importing and "
"conversion tools and so on. In fact, some Git commands are themselves "
"scripts standing on the shoulders of giants. With a little tinkering, you "
"can customize Git to suit your preferences."
msgstr ""
"In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als "
"Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum "
"Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative "
"Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und "
"Konvertierungswerkzeugen und so weiter. Sogar einige Git Anweisungen selbst "
"sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. Mit ein "
"bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen "
"entspricht."

#. type: Plain text
#: ../en/grandmaster.txt:143
msgid ""
"One easy trick is to use built-in Git aliases to shorten your most "
"frequently used commands:"
msgstr ""
"Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden "
"um die am häufigsten benutzten Anweisungen zu verkürzen:"

#. type: Plain text
#: ../en/grandmaster.txt:148
#, no-wrap
msgid ""
"  $ git config --global alias.co checkout\n"
"  $ git config --global --get-regexp alias  # display current aliases\n"
"  alias.co checkout\n"
"  $ git co foo                              # same as 'git checkout foo'\n"
msgstr ""
"  $ git config --global alias.co checkout\n"
"  $ git config --global --get-regexp alias  # display current aliases\n"
"  alias.co checkout\n"
"  $ git co foo                              # same as 'git checkout foo'\n"

#. type: Plain text
#: ../en/grandmaster.txt:151
msgid ""
"Another is to print the current branch in the prompt, or window title.  "
"Invoking"
msgstr ""
"Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. Die "
"Anweisung"

#. type: Plain text
#: ../en/grandmaster.txt:153
#, no-wrap
msgid "  $ git symbolic-ref HEAD\n"
msgstr "  $ git symbolic-ref HEAD\n"

#. type: Plain text
#: ../en/grandmaster.txt:156
msgid ""
"shows the current branch name. In practice, you most likely want to remove "
"the \"refs/heads/\" and ignore errors:"
msgstr ""
"zeigt den Namen des aktuellen 'Branch'. In der Praxis möchtest Du aber das "
"\"refs/heads/\" entfernen und Fehler ignorieren:"

#. type: Plain text
#: ../en/grandmaster.txt:158
#, no-wrap
msgid "  $ git symbolic-ref HEAD 2> /dev/null | cut -b 12-\n"
msgstr "  $ git symbolic-ref HEAD 2> /dev/null | cut -b 12-\n"

#. type: Plain text
#: ../en/grandmaster.txt:162
msgid ""
"The +contrib+ subdirectory is a treasure trove of tools built on Git.  In "
"time, some of them may be promoted to official commands. On Debian and "
"Ubuntu, this directory lives at +/usr/share/doc/git-core/contrib+."
msgstr ""
"Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf "
"Git aufbauen. Mit der Zeit können einige davon zu offiziellen Anweisungen "
"befördert werden. Auf Debian und Ubuntu, findet man dieses Verzeichnis unter "
"+/usr/share/doc/git-core/contrib+."

#. type: Plain text
#: ../en/grandmaster.txt:164
msgid ""
"One popular resident is +workdir/git-new-workdir+. Via clever symlinking, "
"this script creates a new working directory whose history is shared with the "
"original repository:"
msgstr ""
"Ein beliebter Vertreter ist +workdir/git-new-workdir+. Durch cleveres "
"verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine "
"Versionsgeschichte mit dem original 'Repository' teilt:"

#. type: Plain text
#: ../en/grandmaster.txt:166
#, no-wrap
msgid "  $ git-new-workdir an/existing/repo new/directory\n"
msgstr "  $ git-new-workdir ein/existierendes/repo neues/verzeichnis\n"

#. type: Plain text
#: ../en/grandmaster.txt:168
msgid ""
"The new directory and the files within can be thought of as a clone, except "
"since the history is shared, the two trees automatically stay in sync. "
"There's no need to merge, push, or pull."
msgstr ""
"Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' "
"vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche "
"Versionsgeschichte die beiden Versionen automatisch synchron bleiben. Eine "
"Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig."

#. type: Plain text
#: ../en/grandmaster.txt:170
msgid "=== Daring Stunts ==="
msgstr "=== Gewagte Kunststücke ==="

#. type: Plain text
#: ../en/grandmaster.txt:174
msgid ""
"These days, Git makes it difficult for the user to accidentally destroy "
"data.  But if you know what you are doing, you can override safeguards for "
"common commands."
msgstr ""
"Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu "
"zerstören. Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der "
"häufigsten Anweisungen umgehen."

#. type: Plain text
#: ../en/grandmaster.txt:176
#, no-wrap
msgid "*Checkout*: Uncommitted changes cause checkout to fail. To destroy your changes, and checkout a given commit anyway, use the force flag:\n"
msgstr "*Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option:\n"

#. type: Plain text
#: ../en/grandmaster.txt:178
#, no-wrap
msgid "  $ git checkout -f HEAD^\n"
msgstr "  $ git checkout -f HEAD^\n"

#. type: Plain text
#: ../en/grandmaster.txt:180
msgid ""
"On the other hand, if you specify particular paths for checkout, then there "
"are no safety checks. The supplied paths are quietly overwritten. Take care "
"if you use checkout in this manner."
msgstr ""
"Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, "
"gibt es keinen Sicherheitsüberprüfungen mehr. Der angegebene Pfad wird "
"stillschweigend überschrieben. Sei vorsichtig, wenn Du 'checkout' auf diese "
"Weise benutzt."

#. type: Plain text
#: ../en/grandmaster.txt:182
#, no-wrap
msgid "*Reset*: Reset also fails in the presence of uncommitted changes. To force it through, run:\n"
msgstr "*Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. Um es zu erzwingen, verwende:\n"

#. type: Plain text
#: ../en/grandmaster.txt:184
#, no-wrap
msgid "  $ git reset --hard 1b6d\n"
msgstr "  $ git reset --hard 1b6d\n"

#. type: Plain text
#: ../en/grandmaster.txt:186
#, no-wrap
msgid "*Branch*: Deleting branches fails if this causes changes to be lost. To force a deletion, type:\n"
msgstr "*Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. Um das Löschen zu erzwingen, gib ein:\n"

#. type: Plain text
#: ../en/grandmaster.txt:188
#, no-wrap
msgid "  $ git branch -D dead_branch  # instead of -d\n"
msgstr "  $ git branch -D dead_branch  # instead of -d\n"

#. type: Plain text
#: ../en/grandmaster.txt:190
msgid ""
"Similarly, attempting to overwrite a branch via a move fails if data loss "
"would ensue. To force a branch move, type:"
msgstr ""
"Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu "
"überschreiben, wenn das einen Datenverlust zur Folge hat. Um das Verschieben "
"zu erzwingen, gib ein:"

#. type: Plain text
#: ../en/grandmaster.txt:192
#, no-wrap
msgid "  $ git branch -M source target  # instead of -m\n"
msgstr "  $ git branch -M source target  # instead of -m\n"

#. type: Plain text
#: ../en/grandmaster.txt:197
msgid ""
"Unlike checkout and reset, these two commands defer data destruction. The "
"changes are still stored in the .git subdirectory, and can be retrieved by "
"recovering the appropriate hash from `.git/logs` (see \"HEAD-hunting\" "
"above).  By default, they will be kept for at least two weeks."
msgstr ""
"Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen "
"das Zerstören der Daten. Die Änderungen bleiben im .git Unterverzeichnis "
"gespeichert und können wieder hergestellt werden, wenn der entsprechende "
"SHA1-Wert aus `.git/logs` ermittelt wird (siehe \"KOPF-Jagd\" oben). "
"Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten."

#. type: Plain text
#: ../en/grandmaster.txt:201
#, no-wrap
msgid ""
"*Clean*: Some git commands refuse to proceed because they're worried about\n"
"clobbering untracked files. If you're certain that all untracked files and\n"
"directories are expendable, then delete them mercilessly with:\n"
msgstr "*Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit:\n"

#. type: Plain text
#: ../en/grandmaster.txt:203
#, no-wrap
msgid "  $ git clean -f -d\n"
msgstr "  $ git clean -f -d\n"

#. type: Plain text
#: ../en/grandmaster.txt:205
msgid "Next time, that pesky command will work!"
msgstr "Beim nächsten Mal werden diese lästigen Anweisung gehorchen!"

#. type: Plain text
#: ../en/grandmaster.txt:207
msgid "=== Preventing Bad Commits ==="
msgstr "=== Verhindere schlechte 'Commits' ==="

#. type: Plain text
#: ../en/grandmaster.txt:212
msgid ""
"Stupid mistakes pollute my repositories. Most frightening are missing files "
"due to a forgotten *git add*. Lesser transgressions are trailing whitespace "
"and unresolved merge conflicts: though harmless, I wish these never appeared "
"on the public record."
msgstr ""
"Dumme Fehler verschmutzen meine 'Repositories'. Am schrecklichsten sind "
"fehlende Dateien wegen eines vergessenen *git add*. Kleinere Verfehlungen "
"sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie "
"harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen."

#. type: Plain text
#: ../en/grandmaster.txt:214
msgid ""
"If only I had bought idiot insurance by using a _hook_ to alert me about "
"these problems:"
msgstr ""
"Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch "
"Verwendung eines _hook_, der mich bei solchen Problemen alarmiert."

#. type: Plain text
#: ../en/grandmaster.txt:217
#, no-wrap
msgid ""
" $ cd .git/hooks\n"
" $ cp pre-commit.sample pre-commit  # Older Git versions: chmod +x pre-commit\n"
msgstr ""
" $ cd .git/hooks\n"
" $ cp pre-commit.sample pre-commit  # Older Git versions: chmod +x pre-commit\n"

#. type: Plain text
#: ../en/grandmaster.txt:220
msgid ""
"Now Git aborts a commit if useless whitespace or unresolved merge conflicts "
"are detected."
msgstr ""
"Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am "
"Zeilenende oder ungelöste 'merge'-Konflikte entdeckt."

#. type: Plain text
#: ../en/grandmaster.txt:223
msgid ""
"For this guide, I eventually added the following to the beginning of the "
"*pre-commit* hook to guard against absent-mindedness:"
msgstr ""
"Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' "
"folgendes hinzugefügt, zum Schutz vor Zerstreutheit:"

#. type: Plain text
#: ../en/grandmaster.txt:228
#, no-wrap
msgid ""
" if git ls-files -o | grep '\\.txt$'; then\n"
"   echo FAIL! Untracked .txt files.\n"
"   exit 1\n"
" fi\n"
msgstr ""
" if git ls-files -o | grep '\\.txt$'; then\n"
"   echo FAIL! Untracked .txt files.\n"
"   exit 1\n"
" fi\n"

#. type: Plain text
#: ../en/grandmaster.txt:232
msgid ""
"Several git operations support hooks; see *git help hooks*. We activated the "
"sample *post-update* hook earlier when discussing Git over HTTP. This runs "
"whenever the head moves. The sample post-update script updates files Git "
"needs for communication over Git-agnostic transports such as HTTP."
msgstr ""
"Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. Wir "
"haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt "
"Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. Das Beispiel "
"'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation "
"über 'Git-agnostic transports' wie z.B. HTTP benötigt."