Skip to content

Commit

Permalink
Ch01+einleigung vom sie zum du (#377)
Browse files Browse the repository at this point in the history
* doppelt zeile entfernt 2

* Vom Siezen zum Duzen

---------

Co-authored-by: Oscar Santiago <oscar.santiago@atos.net>
  • Loading branch information
pastatopf and pastatopf authored Feb 22, 2024
1 parent c460b29 commit 36aa52c
Show file tree
Hide file tree
Showing 12 changed files with 142 additions and 147 deletions.
4 changes: 2 additions & 2 deletions LICENSE.asc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Dieses Werk ist lizensiert unter der „Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported“ Lizenz.
Um eine Kopie dieser Lizenz zu lesen, besuchen Sie https://creativecommons.org/licenses/by-nc-sa/3.0 oder senden Sie einen Brief an Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Dieses Werk ist lizenziert unter der „Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported“ Lizenz.
Um eine Kopie dieser Lizenz zu lesen, besuche https://creativecommons.org/licenses/by-nc-sa/3.0 oder sende einen Brief an Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
12 changes: 6 additions & 6 deletions book/01-introduction/sections/about-version-control.asc
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ Was ist „Versionsverwaltung“, und warum sollten Sie sich dafür interessiere
Versionsverwaltung ist ein System, welches die Änderungen an einer oder einer Reihe von Dateien über die Zeit hinweg protokolliert, sodass man später auf eine bestimmte Version zurückgreifen kann.
Die Dateien, die in den Beispielen in diesem Buch unter Versionsverwaltung gestellt werden, enthalten Quelltext von Software. Tatsächlich kann in der Praxis nahezu jede Art von Datei per Versionsverwaltung nachverfolgt werden.

Wenn Sie Grafik- oder Webdesigner sind und jede Version eines Bildes oder Layouts behalten möchten (was Sie mit Sicherheit möchten), ist die Verwendung eines Versionskontrollsystems (VCS) eine sehr kluge Sache.
Damit können Sie ausgewählte Dateien auf einen früheren Zustand zurücksetzen, das gesamte Projekt auf einen früheren Zustand zurücksetzen, Änderungen im Laufe der Zeit vergleichen, sehen, wer zuletzt etwas geändert hat, das möglicherweise ein Problem verursacht, wer wann ein Problem verursacht hat und vieles mehr.
Die Verwendung eines VCS bedeutet im Allgemeinen auch, dass Sie problemlos eine Wiederherstellung durchführen können, wenn etwas kaputt geht oder Dateien verloren gehen.
Wenn du Grafik- oder Webdesigner bist und jede Version eines Bildes oder Layouts behalten möchtest (was Du mit Sicherheit möchtest), ist die Verwendung eines Versionskontrollsystems (VCS) eine sehr kluge Sache.
Damit kannst du ausgewählte Dateien auf einen früheren Zustand zurücksetzen, das gesamte Projekt auf einen früheren Zustand zurücksetzen, zurückliegende Änderungen vergleichen, sehen wer zuletzt etwas geändert hat, das möglicherweise ein Problem verursacht, wer wann ein Problem verursacht hat und vieles mehr.
Die Verwendung eines VCS bedeutet im Allgemeinen auch, dass du problemlos eine Wiederherstellung durchführen könntest, wenn etwas kaputt geht oder Dateien verloren gehen.
All diese Vorteile erhält man mit einen nur sehr geringen, zusätzlichen Aufwand.

==== Lokale Versionsverwaltung
Expand All @@ -28,7 +28,7 @@ https://www.gnu.org/software/rcs/[RCS^] arbeitet nach dem Prinzip, dass für jed
==== Zentrale Versionsverwaltung

(((Versionsverwaltung, zentral)))
Ein weiteres großes Problem, mit dem sich viele Leute dann konfrontiert sahen, bestand in der Zusammenarbeit mit anderen Entwicklern auf anderen Systemen.
Ein weiteres großes Problem, mit dem sich viele Leute konfrontiert sahen, bestand in der Zusammenarbeit mit anderen Entwicklern auf anderen Systemen.
Um dieses Problem zu lösen, wurden zentralisierte Versionsverwaltungssysteme entwickelt (engl. Centralized Version Control System, CVCS).
Diese Systeme, wozu beispielsweise CVS, Subversion und Perforce gehören, basieren auf einem zentralen Server, der alle versionierte Dateien verwaltet. Die Clients können die Dateien von diesem zentralen Ort abholen und auf ihren PC übertragen. Den Vorgang des Abholens nennt man Auschecken (engl. to check out). (((CVS)))(((Subversion)))(((Perforce)))
Diese Art von System war über viele Jahre hinweg der Standard für Versionsverwaltungssysteme.
Expand All @@ -41,10 +41,10 @@ Zum Beispiel weiß jeder mehr oder weniger genau darüber Bescheid, was andere a
Administratoren haben die Möglichkeit, detailliert festzulegen, wer was tun kann. Und es ist sehr viel einfacher, ein CVCS zu administrieren als lokale Datenbanken auf jedem einzelnen Anwenderrechner zu verwalten.

Allerdings hat dieser Aufbau auch einige erhebliche Nachteile.
Der offensichtlichste Nachteil ist das Risiko eines Systemausfalls bei Ausfall einer einzelnen Komponente, nämlich dann, wenn der zentralisierte Server ausfällt.
Der offensichtlichste Nachteil ist das Risiko eines Systemausfalls bei Ausfall einer einzelnen Komponente, d.h. wenn der zentrale Server ausfällt.
Wenn dieser Server nur für eine Stunde nicht verfügbar ist, dann kann in dieser einen Stunde niemand in irgendeiner Form mit anderen zusammenarbeiten oder Dateien, an denen gerade gearbeitet wird, versioniert abspeichern.
Wenn die auf dem zentralen Server eingesetzte Festplatte beschädigt wird und keine Sicherheitskopien erstellt wurden, dann sind all diese Daten unwiederbringlich verloren – die komplette Historie des Projektes, abgesehen natürlich von dem jeweiligen Zustand, den Mitarbeiter gerade zufällig auf ihrem Rechner noch vorliegen haben.
Lokale Versionskontrollsysteme haben natürlich dasselbe Problem: Wenn man die Historie eines Projektes an einer einzigen, zentralen Stelle verwaltet, riskiert man, sie vollständig zu verlieren, wenn irgendetwas an dieser zentralen Stelle ernsthaft schief läuft.
Lokale Versionskontrollsysteme haben natürlich dasselbe Problem: Wenn man die Historie eines Projektes an einer einzigen, zentralen Stelle verwaltet, riskiert man, sie vollständig zu verlieren, wenn irgendetwas an dieser zentralen Stelle schief läuft.

==== Verteilte Versionsverwaltung

Expand Down
6 changes: 3 additions & 3 deletions book/01-introduction/sections/command-line.asc
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Es gibt viele verschiedene Möglichkeiten Git einzusetzen.
Auf der einen Seite gibt es die Werkzeuge, die per Kommandozeile bedient werden und auf der anderen, die vielen grafischen Benutzeroberflächen (engl. graphical user interface, GUI), die sich im Leistungsumfang unterscheiden.
In diesem Buch verwenden wir die Kommandozeile.
In der Kommandozeile können nämlich wirklich *alle* vorhandenen Git Befehle ausgeführt werden. Bei den meisten grafischen Oberflächen ist dies nicht möglich, da aus Gründen der Einfachheit nur ein Teil der Git-Funktionalitäten zur Verfügung gestellt werden.
Wenn Sie sich in der Kommandozeilenversion von Git auskennen, finden Sie sich wahrscheinlich auch in einer GUI-Version relativ schnell zurecht, aber andersherum muss das nicht unbedingt zutreffen.
Wenn du dich in der Kommandozeilenversion von Git auskennen, findest du dich wahrscheinlich auch in einer GUI-Version relativ schnell zurecht, aber andersherum muss das nicht unbedingt zutreffen.
Außerdem ist die Wahl der grafischen Oberfläche eher Geschmackssache, wohingegen die Kommandozeilenversion auf jedem Rechner installiert und verfügbar ist.

In diesem Buch gehen wir deshalb davon aus, dass Sie wissen, wie man bei einem Mac ein Terminal öffnet, oder wie man unter Windows die Eingabeaufforderung oder die Powershell öffnet.
Sollten Sie jetzt nur Bahnhof verstehen, sollten Sie an dieser Stelle abbrechen und sich schlau machen, was ein Terminal bzw. eine Eingabeaufforderung ist und wie man diese bedient. Nur so ist sichergestellt, dass Sie unseren Beispielen und Ausführungen im weiteren Verlauf des Buches folgen können.
In diesem Buch gehen wir deshalb davon aus, dass du weißt, wie man bei einem Mac ein Terminal öffnet, oder wie man unter Windows die Eingabeaufforderung oder die Powershell öffnet.
Falls du jetzt nur Bahnhof verstehst, solltest du an dieser Stelle abbrechen und dich schlau machen, was ein Terminal bzw. eine Eingabeaufforderung ist und wie man diese bedient. Nur so ist sichergestellt, dass du unsere Beispiele und Ausführungen im weiteren Verlauf des Buches folgen kannst.
75 changes: 37 additions & 38 deletions book/01-introduction/sections/first-time-setup.asc
Original file line number Diff line number Diff line change
@@ -1,71 +1,70 @@
[[_first_time]]
=== Git Basis-Konfiguration

Nachdem Git jetzt auf Ihrem System installiert ist, sollten Sie Ihre Git-Konfiguration noch anpassen.
Dies muss nur einmalig auf dem jeweiligen System durchgeführt werden. Die Konfiguration bleibt bestehen, wenn Sie Git auf eine neuere Version aktualisieren.
Nachdem Git jetzt auf deinem System installiert ist, solltest du deine Git-Konfiguration noch anpassen.
Dies muss nur einmalig auf dem jeweiligen System durchgeführt werden. Die Konfiguration bleibt bestehen, wenn du Git auf eine neuere Version aktualisierst.
Die Git-Konfiguration kann auch jederzeit geändert werden, indem die nachfolgenden Befehle einfach noch einmal ausgeführt werden.

Git umfasst das Werkzeug `git config`, welches die Möglichkeit bietet, Konfigurationswerte zu verändern. Auf diese Weise können Sie anpassen, wie Git aussieht und arbeitet.(((Git Befehle, config)))
Git umfasst das Werkzeug `git config`, welches die Möglichkeit bietet, Konfigurationswerte zu verändern. Auf diese Weise kannst du anpassen, wie Git aussieht und arbeitet.(((Git Befehle, config)))
Die Konfiguration ist an drei verschiedenen Orten gespeichert:

1. Die Datei `[path]/etc/gitconfig`: enthält Werte, die für jeden Benutzer auf dem System und alle seine Repositories gelten.
Wenn Sie die Option `--system` an `git config` übergeben, liest und schreibt sie spezifisch aus dieser Datei.
Da es sich um eine Systemkonfigurationsdatei handelt, benötigen Sie Administrator- oder Superuser-Rechte, um Änderungen daran vorzunehmen.
2. Die Datei `~/.gitconfig` oder `~/.config/git/config`: enthält Werte, die für Sie, den Benutzer, persönlich bestimmt sind.
Sie können Git dazu bringen, diese Datei gezielt zu lesen und zu schreiben, indem Sie die Option `--global` übergeben, und dies betrifft _alle_ der Repositories, mit denen Sie auf Ihrem System arbeiten.
3. Die Datei `config` im Git-Verzeichnis (also `.git/config`) des jeweiligen Repositories, das Sie gerade verwenden:
Sie können Git mit der Option `--local` zwingen, aus dieser Datei zu lesen und in sie zu schreiben, das ist in der Regel die Standardoption.
(Es dürfte Sie nicht überraschen, dass Sie sich irgendwo in einem Git-Repository befinden müssen, damit diese Option ordnungsgemäß funktioniert.)
Wenn du die Option `--system` an `git config` übergibst, liest und schreibt sie aus dieser Datei.
Da es sich um eine Systemkonfigurationsdatei handelt, benötigst du Administrator- oder Superuser-Rechte, um Änderungen daran vorzunehmen.
2. Die Datei `~/.gitconfig` oder `~/.config/git/config`: enthält Werte, die für dich, den Benutzer, persönlich bestimmt sind.
Du kannst Git dazu bringen, diese Datei gezielt zu lesen und zu schreiben, indem du die Option `--global` übergibst. Dies betrifft _alle_ Repositories, mit denen du auf deinem System arbeitest.
3. Die Datei `config` im Git-Verzeichnis (also `.git/config`) des jeweiligen Repositories, das du gerade verwendest:
Du kannst Git mit der Option `--local` zwingen, aus dieser Datei zu lesen und in sie zu schreiben, das ist in der Regel die Standardoption.
(Es dürfte klar sein, dass du dich irgendwo in einem Git-Repository befinden musst, damit diese Option ordnungsgemäß funktioniert.)

Jede Ebene überschreibt Werte der vorherigen Ebene, so dass Werte in `.git/config` diejenigen in `[path]/etc/gitconfig` aushebeln.
Jede Ebene überschreibt Werte der vorherigen Ebene, so dass Werte in `.git/config` diejenigen in `[path]/etc/gitconfig` aushebelt.

Auf Windows-Systemen sucht Git nach der Datei `.gitconfig` im `$HOME` Verzeichnis (normalerweise zeigt `$HOME` bei den meisten Systemen auf `C:\Users\$USER`).
Git schaut immer nach `[path]/etc/gitconfig`, auch wenn die sich relativ zu dem MSys-Wurzelverzeichnis befindet, dem Verzeichnis in das Sie Git installiert haben.
Wenn Sie eine Version 2.x oder neuer von Git für Windows verwenden, gibt es auch eine Konfigurationsdatei auf Systemebene unter
`C:\Dokumente und Einstellungen\Alle Benutzer\Anwendungsdaten\Git\config` unter Windows XP und unter `C:\ProgramData\Git\config` unter Windows Vista und neuer.
Git schaut immer nach `[path]/etc/gitconfig`, auch wenn die sich relativ zu dem MSys-Wurzelverzeichnis befindet, dem Verzeichnis in das du Git installiert hast.
Wenn du eine Version 2.x oder neuer von Git für Windows verwendest, gibt es auch eine Konfigurationsdatei auf Systemebene unter `C:\Dokumente und Einstellungen\Alle Benutzer\Anwendungsdaten\Git\config` unter Windows XP und unter `C:\ProgramData\Git\config` unter Windows Vista und neuer.
Diese Konfigurationsdatei kann nur von `git config -f <file>` als Admin geändert werden.

Sie können sich alle Ihre Einstellungen ansehen sehen, wo sie herkommen:
Du kannst dir alle Git Einstellungen ansehen und wo sie herkommen mit:

[source,console]
----
$ git config --list --show-origin
----

==== Ihre Identität
==== Deine Identität

Nachdem Sie Git installiert haben, sollten Sie als allererstes Ihren Namen und Ihre E-Mail-Adresse in Git konfigurieren.
Das ist insofern wichtig, da jeder Git-Commit diese Informationen verwendet und sie unveränderlich in die Commits eingearbeitet werden, die Sie erstellen:
Nachdem du Git installiert hast, solltest du als allererstes deinen Namen und deine E-Mail-Adresse in Git konfigurieren.
Das ist insofern wichtig, da jeder Git-Commit diese Informationen verwendet und sie unveränderlich in die Commits eingearbeitet werden, die du erstellst:

[source,console]
----
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
----

Wie schon erwähnt, brauchen Sie diese Konfiguration nur einmal vorzunehmen, wenn Sie die Option `--global` verwenden. Auf Grund der oben erwähnten Prioritäten gilt das dann für alle Ihre Projekte.
Wenn Sie für ein spezielles Projekt einen anderen Namen oder eine andere E-Mail-Adresse verwenden möchten, können Sie den Befehl ohne die Option `--global` innerhalb des Projektes ausführen.
Wie schon erwähnt, brauchst du diese Konfiguration nur einmal vorzunehmen, wenn du die Option `--global` verwendest. Auf Grund der oben erwähnten Prioritäten gilt das dann für alle deine Projekte.
Wenn du für ein spezielles Projekt einen anderen Namen oder eine andere E-Mail-Adresse verwenden möchtest, kannst du den Befehl ohne die Option `--global` innerhalb des Projektes ausführen.

Viele der grafischen Oberflächen helfen einem bei diesem Schritt, wenn Sie sie zum ersten Mal ausführen.
Viele der grafischen Oberflächen helfen einem bei diesem Schritt, wenn du sie zum ersten Mal ausführst.

[[_editor]]
==== Ihr Editor
==== Dein Editor

Jetzt, da Ihre Identität eingerichtet ist, können Sie den Standard-Texteditor konfigurieren, der verwendet wird, wenn Git Sie zum Eingeben einer Nachricht auffordert.
Jetzt, da deine Identität eingerichtet ist, kannst du den Standard-Texteditor konfigurieren, der verwendet wird, wenn Git dich zum Eingeben einer Nachricht auffordert.
Normalerweise verwendet Git den Standard-Texteditor des jeweiligen Systems.

Wenn Sie einen anderen Texteditor, z.B. Emacs, verwenden wollen, können Sie das wie folgt festlegen:
Wenn du einen anderen Texteditor, z.B. Emacs, verwenden willst, kannst du das wie folgt festlegen:

[source,console]
----
$ git config --global core.editor emacs
----

Wenn Sie auf einem Windows-System einen anderen Texteditor verwenden möchten, müssen Sie den vollständigen Pfad zu seiner ausführbaren Datei angeben.
Dies kann, je nachdem, wie Ihr Editor eingebunden ist, unterschiedlich sein.
Wenn du auf einem Windows-System einen anderen Texteditor verwenden möchtest, musst du den vollständigen Pfad zu seiner ausführbaren Datei angeben.
Dies kann, je nachdem, wie dein Editor eingebunden ist, unterschiedlich sein.

Im Falle von Notepad++, einem beliebten Programmiereditor, sollten Sie wahrscheinlich die 32-Bit-Version verwenden, da die 64-Bit-Version zum Zeitpunkt der Erstellung nicht alle Plug-Ins unterstützt.
Beim Einsatz auf einem 32-Bit-Windows-System oder einem 64-Bit-Editor auf einem 64-Bit-System geben Sie etwa Folgendes ein:
Im Falle von Notepad++, einem beliebten Programmiereditor, solltest du wahrscheinlich die 32-Bit-Version verwenden, da die 64-Bit-Version zum Zeitpunkt der Erstellung nicht alle Plug-Ins unterstützt.
Beim Einsatz auf einem 32-Bit-Windows-System oder einem 64-Bit-Editor auf einem 64-Bit-System gibst du etwa Folgendes ein:

[source,console]
----
Expand All @@ -75,22 +74,22 @@ $ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -m
[NOTE]
====
Vim, Emacs und Notepad++ sind beliebte Texteditoren, die von Entwicklern häufig auf Unix-basierten Systemen wie Linux und macOS oder einem Windows-System verwendet werden.
Wenn Sie einen anderen Editor oder eine 32-Bit-Version verwenden, finden Sie in <<C-git-commands#ch_core_editor>> spezielle Anweisungen, wie Sie Ihren bevorzugten Editor mit Git einrichten können.
Wenn du einen anderen Editor oder eine 32-Bit-Version verwenden, findest du in <<C-git-commands#ch_core_editor>> spezielle Anweisungen, wie du deinen bevorzugten Editor mit Git einrichten kannst.
====

[WARNING]
====
Wenn Sie Git nicht so konfigurieren, dass es Ihren Texteditor verwendet und Sie keine Ahnung davon haben, wie man Vim oder Emacs benutzt, werden Sie ein wenig überfordert sein, wenn diese zum ersten Mal von Git gestartet werden.
Wenn du Git nicht so konfigurierst, dass es deinen Texteditor verwendet und du keine Ahnung davon hast, wie man Vim oder Emacs benutzt, wirst du ein wenig überfordert sein, wenn diese zum ersten Mal von Git gestartet werden.
Ein Beispiel auf einem Windows-System könnte ein vorzeitig beendeter Git-Vorgang während einer von Git initiierten Editor-Bearbeitung sein.
====

[[_new_default_branch]]
==== Der standardmäßige Branch-Name

In der Voreinstellung wird Git einen Branch mit dem Namen _master_ erzeugen, wenn Sie ein neues Repository mit `git init` erstellen.
Ab der Git-Version 2.28 können Sie einen abweichenden Namen für den initialen Branch festlegen.
In der Voreinstellung wird Git einen Branch mit dem Namen _master_ erzeugen, wenn du ein neues Repository mit `git init` erstellst.
Ab der Git-Version 2.28 kannst du einen abweichenden Namen für den initialen Branch festlegen.

So konfigurieren Sie _main_ als Vorgabe für den Branch-Namen:
So konfigurierst du _main_ als Vorgabe für den Branch-Namen:

[source,console]
----
Expand All @@ -99,7 +98,7 @@ $ git config --global init.defaultBranch main

==== Einstellungen überprüfen

Wenn Sie Ihre Konfigurationseinstellungen überprüfen möchten, können Sie mit dem Befehl `git config --list` alle Einstellungen auflisten, die Git derzeit finden kann:
Wenn du deine Konfigurationseinstellungen überprüfen möchtest, kannst du mit dem Befehl `git config --list` alle Einstellungen auflisten, die Git derzeit finden kann:

[source,console]
----
Expand All @@ -116,7 +115,7 @@ color.diff=auto
Manche Parameter werden möglicherweise mehrfach aufgelistet, weil Git denselben Parameter in verschiedenen Dateien (z.B. `[path]/etc/gitconfig` und `~/.gitconfig`) gefunden hat.
In diesem Fall verwendet Git dann den jeweils zuletzt aufgelisteten Wert.

Außerdem können Sie mit dem Befehl `git config <key>` prüfen, welchen Wert Git für einen bestimmten Parameter verwendet:(((Git Befehle, config)))
Außerdem kannst du mit dem Befehl `git config <key>` prüfen, welchen Wert Git für einen bestimmten Parameter verwendet:(((Git Befehle, config)))

[source,console]
----
Expand All @@ -126,12 +125,12 @@ John Doe

[NOTE]
====
Da Git möglicherweise den gleichen Wert der Konfigurationsvariablen aus mehr als einer Datei liest, ist es möglich, dass Sie einen unerwarteten Wert für einen dieser Werte haben und nicht wissen, warum.
In solchen Fällen können Sie Git nach dem _Ursprung_ (engl. origin) für diesen Wert fragen, und es wird Ihnen sagen, mit welcher Konfigurationsdatei der Wert letztendlich festgelegt wurde:
Da Git möglicherweise den gleichen Wert der Konfigurationsvariablen aus mehr als einer Datei liest, ist es möglich, dass du einen unerwarteten Wert für einen dieser Werte erhältst und nicht weißt, warum.
In solchen Fällen kannst du Git nach dem _Ursprung_ (engl. origin) für diesen Wert fragen. Git wird dir sagen, mit welcher Konfigurationsdatei der Wert letztendlich festgelegt wurde:
[source,console]
----
$ git config --show-origin rerere.autoUpdate
file:/home/johndoe/.gitconfig false
----
====
====
Loading

0 comments on commit 36aa52c

Please sign in to comment.