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
- CRE130 Verteilte Versionskontrollsysteme - Chaosradio Podcast Network
- Why I love Git so much – uninformativ.de
Hosting
Cheatsheets
Wiki
- Versionsverwaltung › Wiki › ubuntuusers.de
- Git › Wiki › ubuntuusers.de
- Git - Wikipedia
- Git - SVN Crash Course
Dokumentation
- Git Reference
- Git Community Book
- git ready » learn git one commit at a time
- Pro Git - Pro Git Book | Pro Git - Table of Contents
- freiesMagazin 08/2008