DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Das Versionsverwaltungssystem Git (2/2)

| Comments

In Teil 1 wurde Git vorgestellt, vereinzelte Funktionen erklärt und was der Unterschied zwischen zentralen und verteilten Versionsverwaltungssystemen ist, dargelegt.

Dieser Teil beschäftigt sich mit dem Einrichten und Konfigurieren von Git. Desweiteren werden Tipps und Tricks, Software und meine Konfiguration vorgestellt. Interessante Links sind im letzten Abschnitt beigefügt.

Einrichtung

Soweit die Theorie. Nun widmen wir uns dem Einrichten eines Repositorys, das nicht schwierig ist. Wie dies funktioniert wird nachfolgend erklärt.

Installation

Unter Arch Linux wird das Paket git benötigt. Dieses wird durch das folgende Kommando installiert:

$ pacman -S git

Unter Ubuntu:

$ sudo apt-get install git

Git-Repository anlegen und entfernen

Nun möchten wir ein solches Repository erstellen. Dazu wählt man einen Ordner aus, in dem dieses Repo erstellt werden soll. In meinem Fall ist das ~/tmp/git. Nachdem in dieses Verzeichnis gewechselt wurde, gibt man einfach den Befehl

$ git init

ein und das war's! Es wurde ein versteckter Ordner .git erstellt. Dort sind alle relevanten Daten enthalten, die Git benötigt.
Möchte man nun dieses Repo wieder löschen, so reicht es, wenn man diesen Ordner löscht. Gegebenfalls sollte man weitere Konfigurationsdateien wie .gitignore auch löschen.
Man sollte allersdings vor dem Löschen des .git-Ordners alle Branches zu einem Branch mergen, sodass dieses Verzeichnis auf dem aktuellen Stand ist. Würde man dies nicht tun, würden Daten in einem anderen Branch verloren gehen!

Repository veröffentlichen

Das Veröffentlichen von Repositories ist auf dem eigenen Server möglich, wenn dieser Git installiert hat oder man nutzt einen externen Anbieter. Ich empfehle GitHub, dort können beliebig viele Repositories erstellt werden. Dieser Dienst ist kostenlos, wenn es sich um Open-Source-Projekte handelt, andernfalls zahlt man ein paar Euro pro Monat, um private Repositories zu nutzen.

Software

Zuzüglich zu der Kernsoftware git kann weitere Software eingesetzt werden.

  • tig wird auf der Konsole genutzt und bietet verschiedene Informationen.
  • GitX (leider nur für OSX)
  • GitG (Klon von GitX für GNOME)
  • QGit ist eine weitere grafische Variante, um zum Beispiel Branches anzeigen zu lassen.

Tipps & Tricks

Prompt-Erweiterung

Ich nutze die ZSH mit der Erweiterung oh-my-zsh, die das Plug-in git zur Verfügung stellt. Dieses zeigt im Prompt, in welchem Branch man sich gerade befindet und ob es Veränderungen gibt, die zum Index hinzugefügt werden können.
Es gibt auch ein Git-Prompt für die Bash oder ein weiterer Bash-Prompt lvv/git-prompt.

Ignorieren

Das Ignorieren von Dateien wird in der Konfigurations-Datei .gitignore festgelegt. Hierbei können einzelne Dateien oder Ordner ignoriert werden. Zudem sind Wildcards erlaubt.
Es gibt aber auch die Möglichkeit Dateien aus diesem Ausschluss auszuschließen, das heißt, dass diese nicht mehr von Git ignoriert werden. Dazu setzt man ein Ausrufezeichen (!) vor den Eintrag.
Ein Beispiel ist im Ubuntuusers-Wiki festgehalten.

Meine Konfiguration

Meine Konfiguration befindet sich im Home-Verzeichnis und sieht folgendermaßen aus:

bash ~/.gitconfig [user] name = DSIW email = dsiw@dsiw-it.de [color] ui = auto status = auto branch = auto interactive = auto diff = auto [color "branch"] current = yellow reverse local = yellow remote = green [color "diff"] meta = yellow bold frag = magenta bold old = red bold new = green bold [color "status"] added = yellow changed = green untracked = cyan [pack] threads = 0 [diff] external = /usr/bin/vimdiff [gui] [github] user = DSIW token = [Hash] [alias] st = status ci = commit br = branch co = checkout df = diff dc = diff --cached lg = log -p lol = log --graph --decorate --pretty=oneline --abbrev-commit lola = log --graph --decorate --pretty=oneline --abbrev-commit --all ls = ls-files ign = ls-files -o -i --exclude-standard unstage = reset HEAD -- last = log -1 HEAD [core] excludesfile = /home/dsiw/.git/git_ignore

Unter dem Abschnitt [color] werden die Farben aktiviert und in allen unteren Abschnitten werden die Farben dafür definiert. Interessant ist noch der Alias-Abschnitt, die das Eingeben der Befehle verkürzen.

Weitere Informationen

Hosting

Cheatsheets

Wiki

Dokumentation

Videos

Videocasts

Comments