Git Schulung
Einleitung / Geschichte
Git ist ein Distributed Version Control System (DVCS), welches von Linus Torvalds (Erfinder und Maintainer des Linux Kernels) im Jahr 2005 entwickelt wurde.
Local VCS
Existiert nur auf einem Computer
Centralized VCS
Versionsdatenbank wird auf einem zentralen Server gespeichert. Ist dieser nicht erreichbar, kann niemand auf die verschiedenen Versionen zugreifen.
Distributed VCS
Versionsdatenbank wird komplett synchronisiert. Internetverbindung wird nur zum Übertragen von Änderungen benötigt.
Installation Guide
Installation
-
Win + R
drücken. - Den folgenden Befehl kopieren, einfügen und bestätigen.
- Anweisungen auf dem Bildschirm folgen und bestätigen.
Oder von der Offiziellen Seite herunterladen und installieren.
Die Git Konsole kann nun mit Rechtsklick in einem Ordner und Open Git Bash here
geöffnet werden. Alle nachfolgenden Befehle beziehen sich auf die Git Bash Konsole
.
Falls nicht vorhanden einen Beliebigen Editor installieren
z.B. Notepad++:
Git konfigurieren
Wobei der Editor auch auf einen beliebigen anderen Editor gesetzt werden kann.
Usage Guide
Initialisierung eines Repositories
Anlegen eines neuen Repositories:
Ein neues remote Repository hinzufügen:
Oder ein bereits existierendes Repository klonen:
Git States
- Das Working Directory stellt die Dateien dar, wie sie sich aktuell auf der Festplatte befinden.
- Die Staging Area dient zum Vormerken für Änderungen.
- Das Repository beinhaltet alle vorgegangenen Änderungen.
File States
State | Beschreibung |
---|---|
Untracked | Datei wird derzeit nicht vom VCS getrackt |
Unmodified | Datei wird vom VCS getrackt, aber wurde nicht verändert |
Modified | Datei wird vom VCS getrackt, allerdings gibt es Änderungen |
Staged | Datei ist zum Committen vorgemerkt |
Informationen zum Repository erhalten
Zustand der Dateien abfragen:
Verlauf ansehen:
Änderungen ansehen:
Änderungen einchecken
Änderungen stagen:
Änderungen commiten:
Git Branching
Branches anzeigen:
Neue Branch anlegen:
Branch am Remote anlegen:
Branch wechseln:
<branch-to-merge-from>
in aktuelle Branch mergen:
Merge Konflikt
Wird dieselbe Datei gleichzeitig bearbeitet entsteht ein sogenannter Merge Konflikt und Git kann diese Änderungen nicht mehr selbständig mergen.
Beispiel:
file1.txt
mit folgendem Inhalt.
Wird nun in der main
Branch wie folgt verändert:
Und in der update-greeting
Branch:
Wird nun, nachdem alle Änderungen entsprechend committed sind, ein merge Versuch in die main
Branch unternommen (git merge update-greeting
) entsteht dabei ein Merge Konflikt. Und der Inhalt der Datei file1.txt
ändert sich:
Wobei sich oben der Inhalt aus der aktullen Branch (main
) und unten der Inhalt aus der Branch, aus welcher gemerged wurde (update-greeting
), befindet.
Nun muss der Konflikt manuell behoben werden und die Marker entfernt werden.
Nun können die Änderungen mit dem Befehl git add
gestaged und der Mergevorgang mit git commit
abgeschlossen werden.
.gitignore
Ist eine Datei, welche Regeln enthält, nach welchen Git Dateien ignoriert. Bei diesen Regeln handelt es sich um regular expressions.
Zeichen | Beschreibung | Beispiel | Erklärung |
---|---|---|---|
? |
ein beliebiges Zeichen | ?bar |
ignoriert abar , bbar aber nicht foo oder foobar |
* |
null oder mehrere Zeichen | *.foo |
ignoriert alle Dateien, welche mit .foo enden |
/ |
steht für Verzeichnisse | /foo |
ignoriert die Datei foo nur im Projektstammverzeichnis |
bar/ |
ignoriert alle Verzeichnisse mit dem Namen bar |
||
** |
wie * nur auch über Verzeichnisgrenzen hinweg |
foo/**/bar |
ignoriert foo/baz/bar sowie foo/baz/abc/bar |
[] |
Gruppe von Zeichen | [abc]foo |
ignoriert afoo , bfoo und cfoo aber nicht wfoo |
[0-9] |
steht für die alle Zahlen von 0 bis 9 | ||
! |
ignoriert diese Dateien nicht | *.a !lib.a |
ignoriert alle Dateien, welche mit .a enden, außer lib.a |
Sammlung von .gitignore templates für verschiedene Programmiersprachen.
Gitlab
Einer Gruppe beitreten
- "Groups" auswählen
- "Explore groups" auswählen
- Gruppe auswählen
- "Request Access" auswählen
Neues Projekt anlegen
- "New project" auswählen
- "Create blank project" auswählen
- Name und Gruppe festlegen
- Visibility festlegen
- Sollte bereits ein lokales Repository existieren, den Haken bei "Initialize repository with a README" entfernen
- Anleitung auf der Website folgen
Weitere Ressourcen
- Offizielle Dokumentation
-
git help
-
curl cht.sh/git
Keine Kommentare