[[Vorlage(InArbeit, 30.12.2008, cLinx)]] [[Vorlage(Getestet, intrepid, hardy, gutsy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(3)]] [http://git.or.cz/ Git] {en} ist ein dezentrales [:Versionsverwaltung:Versionsverwaltungssystem]. [[Bild(logo.png, align=left)]]Es wurde als Ersatz für das proprietäre Programm [http://www.bitkeeper.com/ BitKeeper] {en} 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: * Einfache und effiziente Arbeitsweise nach [wikipedia:KISS-Prinzip:] * Kein zentraler Server benötigt * Unterstützung vieler Übertragungsprotokolle(HTTP, HTTPS, FTP, SSH, rsync) * Absicherung durch [:GnuPG:]-Signierung = Installation = Folgendes Paket muss installiert [1] werden: * '''git-core''' = Anwendung = == Quellcode herunterladen == Will man nur den Quellcode eines Projektes aus dem Git-Repository herunterladen, öffnet man ein Terminal[2] und tippt den Befehl {{{#!vorlage Befehl git clone git://ADRESSE }}} Um beispielsweise den aktuellen Quellcode des Linux-Kernels in das Verzeichnis '''linux''' herunterzuladen, braucht man nur diesen Befehl: {{{#!vorlage 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 so der Zugriff über den Git-Port(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: {{{#!vorlage Befehl git clone http://ADRESSE }}} == Entwicklung mit Git == === Einrichtung === Bevor man mit der Arbeit beginnt, sollte man seinen Namen und seine Email-Adresse eintragen: {{{#!vorlage Befehl 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, wenn mehrere Entwickler an einem Projekt arbeiten wichtig um den Autoren einer Revision identifizieren zu können. Um die Lesbarkeit zu erhöhen sollte man die Ausgaben mit den folgenden Befehlen einfärben: {{{#!vorlage Befehl git config --global color.ui "auto" }}} Für Computer mit mehreren Prozessor-Kernenempfiehlt sich diese Option: {{{#!vorlage Befehl 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 {{{#!vorlage 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 {{{#!vorlage Befehl git-add DATEI }}} zum Git-Repository hinzu. Hat man nun wieder etwas am Quellcode verändert, erstellt man mit {{{#!vorlage Befehl git-commit -m "ÄNDERUNGSBESCHREIBUNG" }}} eine Revision. Will man den Quellcode nun auf einen Server laden, führt man diesen Befehl aus: {{{#!vorlage Befehl git push ADRESSE BRANCHNAME }}} === Branches === Hat man mehrere Entwicklungszweige zu pflegen, wie beispielsweise '''stable''' oder '''testing''', kann man sich sogenannter Branches bedienen. Um bestehende Branches anzuzeigen gibt man diesen Befehl ein: {{{#!vorlage Befehl git branch }}} Um nun eine neue Branch zu erstellen, muss nur der folgende Befehl eingegeben werden: == Graphische Oberflächen für Git == === git-gui === git-gui ist eine einfache Tk-Oberfläche für Git, die über das Paket * '''git-gui''' installiert werden kann. Mit ihr lassen sich die alltäglichen Aufgaben mit Git komfortabel erledigen. Sie ist ein offizieller Teil des Git-Projektes. === qgit === [http://digilander.libero.it/mcostalba/ qgit] {en} 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''' Auch mit dieser Oberfläche kann man bequem die alltäglichen Dinge der Versionsverwaltung erledigen. = Links = * [http://git.or.cz/ Projektseite] {en} * [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html Offizielle Dokumentation] {en} * [http://www.youtube.com/watch?v=4XpnKHJAok8 Linus Torvalds über Git] {en} * [http://www.freiesmagazin.de/mobil/freiesMagazin-2008-08-bilder.html#08_08_git Git Howto im freiesMagazin] {de} * [http://www.gitcasts.com/ Screencasts zu Git] {en} ---- # tag: Programmierung, System, Shell