ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Git

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

logo.png Git 🇬🇧 ist ein dezentrales Versionsverwaltungssystem. Es wurde als Ersatz für das proprietäre Programm BitKeeper 🇬🇧 von Linux-Maintainer Linus Torvalds im Jahr 2005 geschrieben, da BitKeeper vielen Kernel-Entwicklern durch Lizenzverschärfungen den Zugang zu den Kernelquellen verwehrte. Die erste Version erschien wenige Tage nach der Ankündigung durch Torvalds. Seit dem Entwicklungsstart hat sich Git äußerst rasant entwickelt.

Git unterscheidet sich als dezentrales System von den traditionellen Programmen wie CVS und Subversion. Es hat folgende wichtige Eigenschaften:

Installation

Folgendes Paket muss installiert [1] werden:

  • git

Befehl zum Installieren der Pakete:

sudo apt-get install git 

Oder mit apturl installieren, Link: apt://git

Hinweis:

Bis Ubuntu 10.04 muss stattdessen das Paket git-core installiert werden.

Installiert man über das Ubuntu Software-Center, können zahlreiche Erweiterungen, u.a. Graphische Oberflächen für Git gleich mit geholt werden.

Fremdquelle

Um die aktuellste Git-version zu nutzen, kann ein PPA genutzt werden.

Adresszeile zum Hinzufügen des PPAs:

  • ppa:git-core/ppa

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams git-core zu entnehmen.

Nach dem Einbinden, muss das Paket noch installiert werden[1]:

  • git (ppa)

Befehl zum Installieren der Pakete:

sudo apt-get install git 

Oder mit apturl installieren, Link: apt://git

Auf diesem Wege ist auch ein Update einer zuvor installierten Git-Version möglich.

Selbst kompilieren

Wenn man die neueste Version von Git verwenden will, kann man Git auch selbst kompilieren.

Befehl zum Installieren der Build-Abhängigkeiten:

sudo apt-get build-dep git 

sudo aptitude build-depends git 

Unter Ubuntu 10.04 muss man wieder stattdessen das Paket git-core angeben und braucht zusätzlich:

  • libssl-dev

Befehl zum Installieren der Pakete:

sudo apt-get install libssl-dev 

Oder mit apturl installieren, Link: apt://libssl-dev

Danach führt man folgende Befehle aus:

git clone git://github.com/gitster/git
cd git
make
make install 

Dadurch wird Git in ~/bin/ installiert (make install sollte nicht mit Root-Rechten ausgeführt werden). Die Vorgehensweise wird von Linus Torvalds selbst empfohlen 🇬🇧.

Anwendung

Quellcode herunterladen

Will man nur den Quellcode eines Projektes aus dem Git-Repository herunterladen, öffnet man ein Terminal [2] und verwendet den Befehl

git clone git://ADRESSE  

Um beispielsweise den aktuellen Quellcode des Linux-Kernels in das Verzeichnis linux herunterzuladen, braucht man diesen Befehl:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux 

Falls man hinter einer Firewall sitzt und der Zugriff über den Port 9418 gesperrt ist, kann man versuchen, über den fast immer offenen Port 80 auf das Repository zuzugreifen. Der entsprechende Befehl sieht folgendermaßen aus:

git clone http://ADRESSE  

Entwicklung mit Git

Einrichtung

Bevor man mit der Arbeit beginnt, sollte man seinen Namen und seine E-Mail-Adresse eintragen:

git config --global user.name NAME
git config --global user.email EMAIL@ADRESSE.de 

Diese Daten erscheinen in der Beschreibung einer Veränderung und sind wichtig, um den Autor einer Revision identifizieren zu können, wenn mehrere Entwickler an einem Projekt arbeiten.

Um die Lesbarkeit zu erhöhen, sollte man die Ausgaben mit den folgenden Befehlen einfärben:

git config --global color.ui "auto" 

Für Computer mit mehreren Prozessor-Kernen empfiehlt sich diese Option:

git config --global pack.threads "0" 

Grundlagen

Zuerst erstellt man einen Ordner für das Projekt und wechselt in diesen Ordner. Dort führt man nun den Befehl

git init 

aus. Der Befehl erstellt das Git-Repository mit den nötigen Angaben. Nun erstellt man den Quellcode des Programmes und fügt die Datei(en) mit dem Befehl

git add DATEI 

zum Git-Repository hinzu. Hat man nun wieder etwas am Quellcode verändert, erstellt man mit

git commit -m "ÄNDERUNGSBESCHREIBUNG" 

eine Revision. Wenn man beim letzten Commit eine Veränderung vergessen hat, kann man diese mit

git add DATEI 

hinzufügen, und dann das vorhergehende Commit mit

git commit --amend 

abändern (hierbei wird das letzte Commit verändert, also bei zuvor veröffentlichtem Repository nicht zu empfehlen)

Will man den Quellcode nun auf einen Server laden, führt man diesen Befehl aus:

git push ADRESSE BRANCHNAME 

Hat nun ein anderer Entwickler etwas am Quellcode verändert, kann man die lokale Version mit dem Befehl

git pull 

aktualisieren.

Wenn man nun etwas am Quellcode verändert oder einen Patch eingespielt hat, dies aber rückgängig machen möchte, benutzt man

git checkout -f 

oder alternativ

git reset --hard 

Dies setzt alle unbestätigten lokalen Veränderungen zurück.

Hiermit kann man auflisten, welche Dateien versioniert werden:

git ls-files 

Auslassen mit .gitignore

Hier ein Beispiel, was für jedes Projekt angepasst werden kann:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# generic files to ignore
# backup files (*~) and vim swap file (.swp), MacOS dir file (.DS_Store)
*~
*.lock
*.DS_Store
.*.swp
*.out

# IDE files to ignore (Netbeans, Eclipse)
nbproject/private/
.classpath
.project
.settings

# ignore generated .class files
*.class

# except this file
!.gitignore

Branches

Hat man mehrere Entwicklungszweige zu pflegen, wie beispielsweise stable oder testing, kann man sich der Branches bedienen. Um bestehende Branches anzuzeigen, gibt man diesen Befehl ein:

git branch 

Um nun eine neue Branch zu erstellen, muss nur der folgende Befehl eingegeben werden:

git branch BRANCHNAME 

Um in eine andere Branch zu wechseln verwendet man den diesen Befehl:

git checkout BRANCHNAME 

Einen Patch erstellen

Ein git-Commit kann recht einfach, z.B. mit

git format-patch cfe0a421d7d334499fb5de4ab2c4e2178a4630f3 --stdout > PATCHDATEI.patch 

in einen Patch (namens PATCHDATEI.patch) verwandelt werden. Der Commit-Hash (z.B. cfe0a421d7d334499fb5de4ab2c4e2178a4630f3) ist entsprechend anzupassen.

Mit folgendem Befehl kann der Patch dann angewandt werden:

patch -p1 < PATCHDATEI.patch 

Graphische Oberflächen für Git

gitk

gitk ist eine einfache Tk-Oberfläche für Git, die über das Paket

  • gitk

Befehl zum Installieren der Pakete:

sudo apt-get install gitk 

Oder mit apturl installieren, Link: apt://gitk

installiert werden kann. Zum Start verwendet man diesen Befehl:

gitk
gitk --all 

Im zweiten Fall werden alle Branches gezeigt, nicht nur der aktive Branch. Das Programm git-gui wird zusätzlich benötigt, wenn z.B. git blame Funktionalität innerhalb von gitk genutzt wird.

git-gui

git-gui ist die Standardoberfläche für Git, die über das Paket

  • git-gui (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install git-gui 

Oder mit apturl installieren, Link: apt://git-gui

installiert werden kann. Zum Start verwendet man diesen Befehl:

git gui 

Mit ihr lassen sich die alltäglichen Aufgaben mit Git komfortabel erledigen. Sie ist ein offizieller Teil des Git-Projektes.

qgit

qgit 🇬🇧 ist eine Qt-basierte Oberfläche für Git, die nicht vom Git-Projekt, sondern extern entwickelt wird. Installiert wird sie über das Paket:

  • qgit (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install qgit 

Oder mit apturl installieren, Link: apt://qgit

Auch mit dieser Oberfläche kann man bequem die alltäglichen Dinge der Versionsverwaltung erledigen.

gitg

./gitg.png Grafischer Repository-Betrachter für Gnome:

  • gitg

Befehl zum Installieren der Pakete:

sudo apt-get install gitg 

Oder mit apturl installieren, Link: apt://gitg

Git und andere Versionsverwaltungssysteme

Falls man gezwungen ist, mit einem Subversion- Server zu arbeiten, kann man zur lokalen Verwaltung trotzdem Git einsetzen. Man muss nur das entsprechende Paket installieren. Für Subversion ist das

  • git-svn

Befehl zum Installieren der Pakete:

sudo apt-get install git-svn 

Oder mit apturl installieren, Link: apt://git-svn

Diese Revision wurde am 10. Juli 2013 11:10 von mbecker28 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, Versionsverwaltung