Skip to content

Commit 538411d

Browse files
authored
Merge pull request #26 from max123kl/chapter-09-6
Kapitel 9 komplett übersetzt
2 parents eeb68fd + eb3f19e commit 538411d

File tree

11 files changed

+244
-241
lines changed

11 files changed

+244
-241
lines changed

book/02-git-basics/sections/getting-a-repository.asc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ $ git init
3838

3939
Der Befehl erzeugt ein Unterverzeichnis `.git`, in dem alle relevanten Git Repository Daten enthalten sind, also ein Git Repository Grundgerüst.
4040
Zu diesem Zeitpunkt werden noch keine Dateien in Git versioniert.
41-
(In Kapitel 10, <<ch10-git-internals#ch10-git-internals,Git Internas>>, finden Sie weitere Informationen, welche Dateien im `.git` Verzeichnis enthalten sind und was ihre Aufgabe ist.)(((Git Befehle, init)))
41+
(In Kapitel 10, <<ch10-git-internals#ch10-git-internals,Git Interna>>, finden Sie weitere Informationen, welche Dateien im `.git` Verzeichnis enthalten sind und was ihre Aufgabe ist.)(((Git Befehle, init)))
4242

4343
Wenn Sie bereits existierende Dateien versionieren möchten (und es sich nicht nur um ein leeres Verzeichnis handelt), dann sollten Sie den aktuellen Stand in einem initialen Commit starten.
4444
Mit dem Befehl `git add` legen Sie fest, welche Dateien versioniert werden sollen und mit dem Befehl `git commit` erzeugen Sie einen neuen Commit:

book/04-git-server/sections/protocols.asc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ $ git clone file:///srv/git/project.git
2929
Git funktioniert etwas anders, wenn Sie `file://` explizit am Anfang der URL angeben.
3030
Wenn Sie nur den Pfad angeben, versucht Git, Hardlinks zu verwenden oder die benötigten Dateien direkt zu kopieren.
3131
Wenn Sie `file://` angeben, löst Git Prozesse aus, die normalerweise zum Übertragen von Daten über ein Netzwerk verwendet werden, was im Allgemeinen viel weniger effizient ist.
32-
Der Hauptgrund für die Angabe des Präfix `file://` ist, wenn Sie eine saubere Kopie des Repositorys mit fremden Referenzen oder weggelassenen Objekten wünschen – in der Regel nach einem Import aus einem anderen VCS oder ähnlichem (siehe <<ch10-git-internals#ch10-git-internals,Git Internas>> für Wartungsaufgaben.
32+
Der Hauptgrund für die Angabe des Präfix `file://` ist, wenn Sie eine saubere Kopie des Repositorys mit fremden Referenzen oder weggelassenen Objekten wünschen – in der Regel nach einem Import aus einem anderen VCS oder ähnlichem (siehe <<ch10-git-internals#ch10-git-internals,Git Interna>> für Wartungsaufgaben.
3333
Wir werden hier den normalen Pfad verwenden, denn das ist fast immer schneller.
3434

3535
Um ein lokales Repository zu einem bestehenden Git-Projekt hinzuzufügen, kann so vorgegangen werden:
@@ -113,7 +113,7 @@ $ git clone https://example.com/gitproject.git
113113
----
114114

115115
In diesem speziellen Fall verwenden wir den Pfad `/var/www/htdocs`, der für Apache-Installationen üblich ist, Sie können aber jeden statischen Webserver verwenden – legen Sie einfach das leere Repository in seinen Pfad.
116-
Die Git-Daten werden als einfache statische Dateien bereitgestellt (siehe Kapitel <<ch10-git-internals#ch10-git-internals,Git Internas>> für Bedienungsdetails).
116+
Die Git-Daten werden als einfache statische Dateien bereitgestellt (siehe Kapitel <<ch10-git-internals#ch10-git-internals,Git Interna>> für Bedienungsdetails).
117117

118118
Im Allgemeinen würden Sie sich entweder einen Smart HTTP-Server zum Lesen und Schreiben betreiben oder die Dateien einfach als schreibgeschützt im Dumb-Modus zur Verfügung stellen.
119119
Seltener wird ein Mix aus beiden Diensten angeboten.
Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
=== Verteilter Arbeitsablauf
22

33
(((workflows)))
4-
Im Gegensatz zu CVCSs (Centralized Version Control Systems - Zentrale Versionsverwaltungs Systeme) können Sie dank der verteilten Struktur von Git die Zusammenarbeit von Entwicklern in Projekten wesentlich flexibler gestalten.
4+
Im Gegensatz zu CVCSs (Centralized Version Control Systems - Zentrale Versionsverwaltungs Systeme) können Sie dank der verteilten Struktur von Git die Zusammenarbeit von Entwicklern in Projekten wesentlich flexibler gestalten.
55
In zentralisierten Systemen ist jeder Entwickler ein gleichwertiger Netzknoten, der mehr oder weniger gleichermaßen mit einem zentralen System arbeitet.
6-
In Git ist jedoch jeder Entwickler potentiell beides - sowohl Netzknoten als auch zentrales System. Das heißt, jeder Entwickler kann sowohl Code für andere Repositorys bereitstellen als auch ein öffentliches Repository verwalten, auf dem andere ihre Arbeit aufbauen und zu dem sie beitragen können.
7-
Dies bietet eine Fülle von möglichen Arbeitsabläufen (engl. Workflows) für Ihr Projekt und/oder Ihrem Team, sodass wir einige gängige Paradigmen behandeln, welche die Vorteile dieser Flexibilität nutzen.
6+
In Git ist jedoch jeder Entwickler potentiell beides - sowohl Netzknoten als auch zentrales System. Das heißt, jeder Entwickler kann sowohl Code für andere Repositorys bereitstellen als auch ein öffentliches Repository verwalten, auf dem andere ihre Arbeit aufbauen und zu dem sie beitragen können.
7+
Dies bietet eine Fülle von möglichen Arbeitsabläufen (engl. Workflows) für Ihr Projekt und/oder Ihrem Team, sodass wir einige gängige Paradigmen behandeln, welche die Vorteile dieser Flexibilität nutzen.
88
Wir werden die Stärken und möglichen Schwächen der einzelnen Entwürfe eingehen. Sie können einen einzelnen davon auswählen, um ihn zu nutzen, oder Sie können die Funktionalitäten von allen miteinander kombinieren.
99

1010
==== Zentralisierter Arbeitsablauf
1111

1212
(((workflows, centralized)))
13-
In zentralisierten Systemen gibt es im Allgemeinen ein einziges Modell für die Zusammenarbeit - den zentralisierten Arbeitsablauf.
13+
In zentralisierten Systemen gibt es im Allgemeinen ein einziges Modell für die Zusammenarbeit - den zentralisierten Arbeitsablauf.
1414
Ein zentraler Hub oder _Repository_ kann Quelltext akzeptieren und alle Beteiligten synchronisieren ihre Arbeit damit.
1515
Eine Reihe von Entwicklern sind Netznoten - Nutzer dieses Hubs - und synchronisieren ihre Arbeit mit diesem einen, zentralen Punkt.
1616

1717
.Zentralisierter Arbeitsablauf.
1818
image::images/centralized_workflow.png[Zentralisierter Arbeitsablauf.]
1919

20-
Dies bedeutet, wenn zwei Entwickler ein Repository vom Hub klonen und beide Änderungen vornehmen, der erste Entwickler, der die Änderungen zurückgespielt hat, dies problemlos tun kann.
21-
Der zweite Entwickler muss jedoch die Arbeit des ersten Entwicklers bei sich einfließen lassen (mergen), bevor seine Änderungen aufgenommen werden können, damit die Änderungen des ersten Entwicklers nicht überschrieben werden.
20+
Dies bedeutet, wenn zwei Entwickler ein Repository vom Hub klonen und beide Änderungen vornehmen, der erste Entwickler, der die Änderungen zurückgespielt hat, dies problemlos tun kann.
21+
Der zweite Entwickler muss jedoch die Arbeit des ersten Entwicklers bei sich einfließen lassen (mergen), bevor seine Änderungen aufgenommen werden können, damit die Änderungen des ersten Entwicklers nicht überschrieben werden.
2222
Dieses Konzept ist in Git genauso wahr wie in Subversion(((Subversion))) (oder ein anderes beliebiges CVCS), und dieses Konzept funktioniert in Git wunderbar.
2323

24-
Wenn Sie bereits mit einem zentralisierten Arbeitsablauf in Ihrem Unternehmen oder Team vertraut sind, können Sie diesen Ablauf problemlos mit Git weiterverwenden.
24+
Wenn Sie bereits mit einem zentralisierten Arbeitsablauf in Ihrem Unternehmen oder Team vertraut sind, können Sie diesen Ablauf problemlos mit Git weiterverwenden.
2525
Richten Sie einfach ein einziges Repository ein und gewähren Sie allen Mitgliedern Ihres Teams Schreib-Zugriff (push). Git lässt nicht zu, dass Benutzer sich gegenseitig überschreiben.
2626

27-
Sagen wir, John und Jessica fangen beide zur gleichen Zeit mit ihrer Arbeit an.
28-
John beendet seine Änderung und lädt diese zum Server hoch.
29-
Dann versucht Jessica, ihre Änderungen hochzuladen, aber der Server lehnt sie ab.
30-
Ihr wird gesagt, dass sie versucht, Änderungen „non-fast-forward“ zu pushen, und dass sie dies erst tun kann, wenn sie sie bestehende Änderungen abgeholt und mit ihrer lokalen Kopie zusammengeführt hat.
27+
Sagen wir, John und Jessica fangen beide zur gleichen Zeit mit ihrer Arbeit an.
28+
John beendet seine Änderung und lädt diese zum Server hoch.
29+
Dann versucht Jessica, ihre Änderungen hochzuladen, aber der Server lehnt sie ab.
30+
Ihr wird gesagt, dass sie versucht, Änderungen „non-fast-forward“ zu pushen, und dass sie dies erst tun kann, wenn sie sie bestehende Änderungen abgeholt und mit ihrer lokalen Kopie zusammengeführt hat.
3131
Dieser Workflow ist für viele Menschen sehr ansprechend, weil er ein bewährtes Modell ist, mit dem viele bereits bekannt und vertraut sind.
3232

33-
Diese Vorgehensweise ist nicht auf kleine Teams beschränkt.
33+
Diese Vorgehensweise ist nicht auf kleine Teams beschränkt.
3434
Mit dem Verzweigungs-Modell (Branching-Modell) von Git ist es Hunderten von Entwicklern möglich, ein einzelnes Projekt über Dutzende von Branches gleichzeitig erfolgreich zu bearbeiten.
3535

3636
[[_integration_manager]]
3737
==== Arbeitsablauf mit Integrationsmanager
3838

3939
(((workflows, integration manager)))
4040

41-
Da Sie in Git über mehrere Remote-Repositorys verfügen können, ist ein Workflow möglich, bei dem jeder Entwickler Schreibzugriff auf sein eigenes, öffentliches Repository und Lesezugriff auf die Repositorys aller anderen Entwickler hat.
42-
Dieses Szenario enthält häufig ein zentrales Repository, das das „offizielle“ Projekt darstellt.
43-
Um zu diesem Projekt beizutragen, erstellen Sie Ihren eigenen öffentlichen Klon des Projekts und laden Ihre Änderungen dort hoch.
44-
Anschließend können Sie eine Anforderung an den Betreuer des Hauptprojekts senden, um Ihre Änderungen zu übernehmen (Pull Request).
41+
Da Sie in Git über mehrere Remote-Repositorys verfügen können, ist ein Workflow möglich, bei dem jeder Entwickler Schreibzugriff auf sein eigenes, öffentliches Repository und Lesezugriff auf die Repositorys aller anderen Entwickler hat.
42+
Dieses Szenario enthält häufig ein zentrales Repository, das das „offizielle“ Projekt darstellt.
43+
Um zu diesem Projekt beizutragen, erstellen Sie Ihren eigenen öffentlichen Klon des Projekts und laden Ihre Änderungen dort hoch.
44+
Anschließend können Sie eine Anforderung an den Betreuer des Hauptprojekts senden, um Ihre Änderungen zu übernehmen (Pull Request).
4545
Der Betreuer kann dann Ihr Repository als Remote hinzufügen, Ihre Änderungen lokal testen, diese in seinem Branch einfließen und in sein öffentliches Repository hochladen.
4646
Der Prozess funktioniert wie folgt (siehe <<wfdiag_b>>):
4747

@@ -57,35 +57,35 @@ Der Prozess funktioniert wie folgt (siehe <<wfdiag_b>>):
5757
image::images/integration-manager.png[Arbeitsablauf mit Integrationsmanager.]
5858

5959
(((forking)))
60-
Dies ist ein sehr häufiger Workflow mit Hub-basierten Tools wie GitHub oder GitLab, bei dem es einfach ist, ein Projekt zu „forken“ und Ihre Änderungen in Ihren Fork hochzuladen, damit jeder sie sehen kann.
61-
Einer der Hauptvorteile dieses Ansatzes besteht darin, dass Sie weiterarbeiten können und der Verwalter des Haupt-Repositorys Ihre Änderungen jederzeit übernehmen kann.
60+
Dies ist ein sehr häufiger Workflow mit Hub-basierten Tools wie GitHub oder GitLab, bei dem es einfach ist, ein Projekt zu „forken“ und Ihre Änderungen in Ihren Fork hochzuladen, damit jeder sie sehen kann.
61+
Einer der Hauptvorteile dieses Ansatzes besteht darin, dass Sie weiterarbeiten können und der Verwalter des Haupt-Repositorys Ihre Änderungen jederzeit übernehmen kann.
6262
Die Mitwirkenden müssen nicht warten, bis das Projekt ihre Änderungen übernommen hat - jede Partei kann in ihrem eigenen Tempo arbeiten.
6363

64-
==== Arbeitsablauf mit Diktator und Leutnante
64+
==== Arbeitsablauf mit Diktator und Leutnants
6565

6666
(((workflows, dictator and lieutenants)))
67-
Dies ist eine Variante eines Workflows mit vielen Repositorys.
68-
Sie wird im Allgemeinen von großen Projekten mit Hunderten von Mitarbeitern verwendet. Ein berühmtes Beispiel ist der Linux-Kernel.
69-
Verschiedene Integrationsmanager sind für bestimmte Teile des Repositorys verantwortlich. Sie heißen _Leutnante_.
70-
Alle Leutnante haben einen Integrationsmanager, der als der wohlwollende Diktator (benevolent dictator) bezeichnet wird.
67+
Dies ist eine Variante eines Workflows mit vielen Repositorys.
68+
Sie wird im Allgemeinen von großen Projekten mit Hunderten von Mitarbeitern verwendet. Ein berühmtes Beispiel ist der Linux-Kernel.
69+
Verschiedene Integrationsmanager sind für bestimmte Teile des Repositorys verantwortlich. Sie heißen _Leutnants_.
70+
Alle Leutnants haben einen Integrationsmanager, der als der wohlwollende Diktator (benevolent dictator) bezeichnet wird.
7171
Der wohlwollende Diktator pusht von seinem Verzeichnis in ein Referenz-Repository, aus dem alle Beteiligten ihre eigenen Repositorys aktualisieren müssen.
7272
Dieser Prozess funktioniert wie folgt (siehe <<wfdiag_c>>):
7373

74-
1. Entwickler arbeiten regelmäßig an ihrem Themen Branch und reorganisieren (rebasen) ihre Arbeit auf `master`.
74+
1. Entwickler arbeiten regelmäßig an ihrem Themen Branch und reorganisieren (rebasen) ihre Arbeit auf `master`.
7575
Der `master`-Branch ist der des Referenz-Repositorys, in das der Diktator pusht.
76-
2. Die Leutnante fassen die Themen Branches der Entwickler mit ihrem `master`-Branch zusammen.
77-
3. Der Diktator führt die `master`-Branches der Leutnante in den `master`-Branch des Diktators zusammen.
76+
2. Die Leutnants fassen die Themen Branches der Entwickler mit ihrem `master`-Branch zusammen.
77+
3. Der Diktator führt die `master`-Branches der Leutnants in den `master`-Branch des Diktators zusammen.
7878
4. Schließlich pusht der Diktator diesen `master` -Branch in das Referenz-Repository, damit die anderen Entwickler darauf einen Rebase durchführen können.
7979

8080
[[wfdiag_c]]
8181
.Arbeitsablauf mit wohlwollendem Diktator.
8282
image::images/benevolent-dictator.png[Arbeitsablauf mit wohlwollendem Diktator.]
8383

84-
Diese Art von Arbeitsablauf ist nicht weit verbreitet, kann jedoch in sehr großen Projekten oder in sehr hierarchischen Umgebungen hilfreich sein.
84+
Diese Art von Arbeitsablauf ist nicht weit verbreitet, kann jedoch in sehr großen Projekten oder in sehr hierarchischen Umgebungen hilfreich sein.
8585
Dies ermöglicht dem Projektleiter (dem Diktator), einen Großteil der Arbeit zu delegieren und große Teilbereiche von Quelltext an mehreren Stellen zu sammeln, bevor diese integriert werden.
8686

8787
==== Zusammenfassung
8888

89-
Dies sind einige häufig verwendete Workflows, die mit einem verteilten System wie Git möglich sind. Allerdings sind auch viele Variationen möglich, um Ihren eigenen Arbeitsabläufen gerecht zu werden.
90-
Jetzt, da Sie (hoffentlich) bestimmen können, welche Kombination von Arbeitsabläufen bei Ihnen funktionieren würde, werden wir einige spezifischere Beispiele davon betrachten, wie man die Hauptaufgaben durchführen kann, welche die unterschiedliche Abläufe ausmachen.
89+
Dies sind einige häufig verwendete Workflows, die mit einem verteilten System wie Git möglich sind. Allerdings sind auch viele Variationen möglich, um Ihren eigenen Arbeitsabläufen gerecht zu werden.
90+
Jetzt, da Sie (hoffentlich) bestimmen können, welche Kombination von Arbeitsabläufen bei Ihnen funktionieren würde, werden wir einige spezifischere Beispiele davon betrachten, wie man die Hauptaufgaben durchführen kann, welche die unterschiedliche Abläufe ausmachen.
9191
Im nächsten Abschnitt erfahren Sie etwas über gängige Formen der Mitarbeit an einem Projekt.

book/08-customizing-git/sections/policy.asc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[[_an_example_git_enforced_policy]]
2-
=== An Example Git-Enforced Policy
2+
=== Beispiel für Git-forcierte Regeln
33

44
(((policy example)))
55
In this section, you'll use what you've learned to establish a Git workflow that checks for a custom commit message format, and allows only certain users to modify certain subdirectories in a project.

0 commit comments

Comments
 (0)