Skip to content

Commit

Permalink
review kapitel 1 (#355)
Browse files Browse the repository at this point in the history
* review kapitel 1

* Update book/01-introduction/sections/what-is-git.asc

Co-authored-by: Dieter Ziller <[email protected]>

---------

Co-authored-by: Oscar Santiago <[email protected]>
Co-authored-by: Dieter Ziller <[email protected]>
  • Loading branch information
3 people authored Sep 15, 2023
1 parent 2a342cf commit d8211de
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 24 deletions.
18 changes: 9 additions & 9 deletions book/01-introduction/sections/about-version-control.asc
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
(((Versionsverwaltung)))
Was ist „Versionsverwaltung“, und warum sollten Sie sich dafür interessieren?
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.
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.

Als Grafik- oder Webdesigner möchte man zum Beispiel in der Lage sein, jede Version eines Bildes oder Layouts nachverfolgen zu können. Als solcher wäre es deshalb ratsam, ein Versionsverwaltungssystem (engl. Version Control System, VCS) einzusetzen.
Ein solches System erlaubt es, einzelne Dateien oder auch ein ganzes Projekt in einen früheren Zustand zurückzuversetzen, nachzuvollziehen, wer zuletzt welche Änderungen vorgenommen hat, die möglicherweise Probleme verursachen, herauszufinden wer eine Änderung ursprünglich vorgenommen hat und viele weitere Dinge.
Ein Versionsverwaltungssystem bietet allgemein die Möglichkeit, jederzeit zu einem vorherigen, funktionierenden Zustand zurückzukehren, auch wenn man einmal Mist gebaut oder aus irgendeinem Grund Dateien verloren hat.
All diese Vorteile erhält man für einen nur sehr geringen, zusätzlichen Aufwand.
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.
All diese Vorteile erhält man mit einen nur sehr geringen, zusätzlichen Aufwand.

==== Lokale Versionsverwaltung

(((Versionsverwaltung,lokal)))
Viele Menschen betreiben Versionsverwaltung, indem sie einfach all ihre Dateien in ein separates Verzeichnis kopieren (die Schlaueren darunter verwenden ein Verzeichnis mit Zeitstempel im Namen).
Diese Vorgehensweise ist sehr weit verbreitet und wird gern verwendet, weil sie so einfach ist. Aber sie ist eben auch unglaublich fehleranfällig.
Dieser Ansatz ist sehr verbreitet, weil er so einfach ist, aber auch unglaublich fehleranfällig.
Man arbeitet sehr leicht im falschen Verzeichnis, bearbeitet damit die falschen Dateien oder überschreibt Dateien, die man eigentlich nicht überschreiben wollte.

Aus diesem Grund, haben Programmierer bereits vor langer Zeit, lokale Versionsverwaltungssysteme entwickelt, die alle Änderungen an allen relevanten Dateien in einer Datenbank verwalten.
Expand All @@ -30,7 +30,7 @@ https://www.gnu.org/software/rcs/[RCS^] arbeitet nach dem Prinzip, dass für jed
(((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.
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 versionierten 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 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.

.Zentrale Versionsverwaltung
Expand All @@ -50,12 +50,12 @@ Lokale Versionskontrollsysteme haben natürlich dasselbe Problem: Wenn man die H

(((Versionsverwaltung, verteilt)))
Und an dieser Stelle kommen verteilte Versionsverwaltungssysteme (engl. Distributed Version Control System, DVCS) ins Spiel.
In einem DVCS (wie z.B. Git, Mercurial, Bazaar oder Darcs) erhalten Anwender nicht einfach nur den jeweils letzten Zustand des Projektes von einem Server: Sie erhalten stattdessen eine vollständige Kopie des Repositorys.
In einem DVCS (wie z.B. Git, Mercurial, Bazaar oder Darcs) erhalten Anwender nicht einfach nur den jeweils letzten Zustand des Projektes von einem Server: Sie erhalten stattdessen eine vollständige Kopie des Repositories.
Auf diese Weise kann, wenn ein Server beschädigt wird, jedes beliebige Repository von jedem beliebigen Anwenderrechner zurückkopiert werden und der Server so wiederhergestellt werden.
Jede Kopie, ein sogenannter Klon (engl. clone), ist ein vollständiges Backup der gesamten Projektdaten.

.Verteilte Versionsverwaltung
image::images/distributed.png[Distributed version control diagram]

Darüber hinaus können derartige Systeme hervorragend mit verschiedenen externen Repositorys, sogenannten Remote-Repositorys, umgehen, sodass man mit verschiedenen Gruppen von Leuten simultan auf verschiedene Art und Weise an einem Projekt zusammenarbeiten kann.
Darüber hinaus können derartige Systeme hervorragend mit verschiedenen externen Repositories, sogenannten Remote-Repositories, umgehen, sodass man mit verschiedenen Gruppen von Leuten simultan auf verschiedene Art und Weise an einem Projekt zusammenarbeiten kann.
Damit ist es möglich, verschiedene Arten von Arbeitsabläufen zu erstellen und anzuwenden, welche mit zentralisierten Systemen nicht möglich wären. Dazu gehören zum Beispiel hierarchische Arbeitsabläufe.
8 changes: 4 additions & 4 deletions book/01-introduction/sections/first-time-setup.asc
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ Die Git-Konfiguration kann auch jederzeit geändert werden, indem die nachfolgen
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)))
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 Repositorys gelten.
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 Repositorys, mit denen Sie auf Ihrem System arbeiten.
3. Die Datei `config` im Git-Verzeichnis (also `.git/config`) des jeweiligen Repositorys, das Sie gerade verwenden:
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.)

Expand Down Expand Up @@ -81,7 +81,7 @@ Wenn Sie einen anderen Editor oder eine 32-Bit-Version verwenden, finden Sie in
[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.
Ein Beispiel: auf einem Windows-System kann es eine vorzeitig beendete Git-Operation während einer von Git angestoßenen Verarbeitung sein.
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]]
Expand Down
6 changes: 3 additions & 3 deletions book/01-introduction/sections/installing.asc
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ image::images/git-osx-installer.png[Git macOS installer]

==== Installation unter Windows

Auch für Windows gibt es einige, wenige Möglichkeiten zur Installation von Git.(((Windows, Installation)))
Auch für Windows gibt es einige Möglichkeiten zur Installation von Git.(((Windows, Installation)))
Eine offizielle Windows-Version findet man direkt auf der Git-Homepage.
Gehen Sie dazu auf https://git-scm.com/download/win[^] und der Download sollte dann automatisch starten.
Man sollte dabei beachten, dass es sich hierbei um das Projekt „Git for Windows“ handelt, welches unabhängig von Git selbst ist. Weitere Informationen hierzu finden Sie unter https://msysgit.github.io/[^].
Expand All @@ -64,7 +64,7 @@ Beachten Sie, dass das Chocolatey-Paket von der Community gepflegt wird.
==== Aus dem Quellcode installieren

Viele Leute kompilieren Git auch auf ihrem eigenen Rechner, weil sie damit die jeweils aktuellste Version erhalten.
Die vorbereiteten Pakete hinken meist ein wenig hinterher. Heutzutage ist dies nicht mehr ganz so schlimm, da Git einen gewissen Reifegrad erfahren hat.
Die vorbereiteten Pakete hinken meist ein wenig hinterher, obwohl Git in den letzten Jahren ausgereifter geworden ist und dies somit wesentlich besser geworden ist.

Wenn Sie Git aus dem Quellcode installieren möchten, benötigen Sie die folgenden Bibliotheken, von denen Git abhängt: autotools, curl, zlib, openssl, expat und libiconv.
Wenn Sie sich beispielsweise auf einem System befinden, das Paketverwaltungen, wie `dnf` (Fedora) oder `apt-get` (ein Debian-basiertes System) hat, können Sie mit einem dieser Befehle die minimalen Abhängigkeiten für die Kompilierung und Installation der Git-Binärdateien installieren:
Expand Down Expand Up @@ -129,7 +129,7 @@ $ make all doc info
$ sudo make install install-doc install-html install-info
----

Jetzt, nachdem Git installiert ist, kann man sich Git-Updates auch per Git beschaffen:
Nachdem dies erledigt ist, können Sie Git für Updates auch über Git selbst beziehen:

[source,console]
----
Expand Down
6 changes: 3 additions & 3 deletions book/01-introduction/sections/what-is-git.asc
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
[[what_is_git_section]]
=== Was ist Git?

Also, was ist Git in Kürze?
Das ist ein wichtiger Teil, den es zu beachten gilt, denn wenn Sie verstehen, was Git und das grundlegenden Konzept seiner Arbeitsweise ist, dann wird die effektive Nutzung von Git für Sie wahrscheinlich viel einfacher sein.
Also, was ist Git denn nun?
Dies ist ein wichtiger Teil, den es zu beachten gilt, denn wenn Sie verstehen, was Git und das grundlegenden Konzept seiner Arbeitsweise ist, dann wird die effektive Nutzung von Git für Sie wahrscheinlich viel einfacher sein.
Wenn Sie Git erlernen, versuchen Sie, Ihren Kopf von den Dingen zu befreien, die Sie über andere VCSs wissen, wie CVS, Subversion oder Perforce – das wird Ihnen helfen, unangenehme Missverständnisse bei der Verwendung des Tools zu vermeiden.
Auch wenn die Benutzeroberfläche von Git diesen anderen VCSs sehr ähnlich ist, speichert und betrachtet Git Informationen auf eine ganz andere Weise, und das Verständnis dieser Unterschiede hilft Ihnen Unklarheiten bei der Verwendung zu vermeiden.(((Subversion)))(((Perforce)))

==== Snapshots statt Unterschiede

Der Hauptunterschied zwischen Git und anderen Versionsverwaltungssystemen (insbesondere auch Subversion und vergleichbaren Systemen) besteht in der Art und Weise wie Git die Daten betrachtet.
Konzeptionell speichern die meisten anderen Systeme Informationen als eine Liste von dateibasierten Änderungen.
Konzeptionell speichern die meisten anderen Systeme Informationen als eine Liste dateibasierter Änderungen.
Diese Systeme (CVS, Subversion, Perforce, Bazaar usw.) betrachten die Informationen, die sie verwalten, als eine Reihe von Dateien an denen im Laufe der Zeit Änderungen vorgenommen werden (dies wird allgemein als _deltabasierte_ Versionskontrolle bezeichnet).

.Speichern von Daten als Änderung an einzelnen Dateien auf Basis einer Ursprungsdatei
Expand Down
11 changes: 6 additions & 5 deletions ch01-getting-started.asc
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
[[ch01-getting-started]]
== Erste Schritte

In diesem Kapitel wird es darum gehen, wie Sie mit Git beginnen können.
Wir starten mit einer Erläuterung des Hintergrunds zu Versionskontroll-Systemen, gehen dann weiter zu dem Thema, wie Sie Git auf Ihrem System zum Laufen bringen und schließlich wie Sie es einrichten können, sodass Sie in der Lage sind, die ersten Schritte mit Git zu tun.
In diesem Kapitel geht es um den Einstieg in Git.
Wir erklären zunächst einige Hintergrundinformationen zu Versionskontrolltools, gehen dann dazu über, wie Sie Git auf Ihrem System zum Laufen bringen und wie Sie es schließlich so einrichten, dass Sie damit arbeiten können.
Am Ende dieses Kapitels sollten Sie verstehen, wozu Git gut ist und weshalb man es verwenden sollte und Sie sollten in der Lage sein, mit Git loslegen zu können.
Am Ende dieses Kapitels sollten Sie verstehen, warum es Git gibt, warum Sie es verwenden sollten und gut gerüstet sein, um die ersten Schritte mit Git zu machen.

include::book/01-introduction/sections/about-version-control.asc[]

Expand All @@ -21,6 +22,6 @@ include::book/01-introduction/sections/help.asc[]

=== Zusammenfassung

Sie sollten jetzt ein grundlegendes Verständnis dafür haben, was Git ist und wie es sich von anderen zentralisierten Versionsverwaltungssystemen unterscheidet, die Sie evtl. bisher eingesetzt haben.
Sie sollten nun auch eine funktionierende Version von Git auf Ihrem System haben, die mit Ihrer persönlichen Identität eingerichtet ist.
Es ist jetzt an der Zeit, einige Grundlagen von Git zu lernen.
Sie sollten nun ein grundlegendes Verständnis davon haben, was Git ist und wie es sich von anderen zentralisierten Versionskontrollsystemen unterscheidet, die Sie möglicherweise zuvor verwendet haben.
Sie sollten jetzt auch eine funktionierende Version von Git auf Ihrem System haben, die mit Ihrer persönlichen Identität eingerichtet ist.
Es ist jetzt an der Zeit, einige Git-Grundlagen zu erlernen.

0 comments on commit d8211de

Please sign in to comment.