Unter Kontrolle

Klone

Sie können die Datei aber auch direkt löschen und es Git überlassen das Löschen automatisch zu erkennen. In diesem Fall kommt wieder der git add Befehl zum Einsatz. Dieses Mal allerdings mit angehängtem Parameter -a, der dafür sorgt, dass gelöschte Dateien auch im Repository gelöscht werden.Wie bei anderen VCS sorgt auch bei Git der Befehl commit dafür, dass eine Version für eine Änderung angelegt wird.

$> git commit -m 'Beseitigung Fehler #156'

Klone

Wie schon erwähnt, muss es bei Git kein zentrales Repository geben. Natürlich können Sie trotzdem mit mehreren Personen an einem Projekt arbeiten. Jeder kann sich eine lokale Kopie, eines Repositories erstellen. Diese Kopie wird Klon genannt, da sie alle Informationen des Quellrepositories enthält. Zur Erstellung eines Klons wird dem Kommandozeilen-Tool die URL des zu klonenden Repositories mitgegeben:

$> git clone http://mein-server.de/ projektname.git

image.jpg

© Internet Magazin

Unter Windows kommt oft die grafische Benutzeroberfläche TortoiseGit zum Einsatz, die sich in den Windows-Explorer integriert.

Anschließend können Sie in diesem Klon- Repository arbeiten. Damit Änderungen wieder den Weg zurück in das ursprüngliche Repository finden, gibt es den Befehl push. Dieser überträgt Änderungen zurück zum Ursprungsort. Innerhalb dieser Push- Operationen werden alle Branches und Änderungen des lokalen Klons übertragen, die mittels commit in die Versionshistorie eingefügt wurden.Natürlich können Sie mit einem zentralen Repository arbeiten, das auf einem Server liegt. Dies hat den Vorteil, dass Sie von diesem Repository einfacher Backups machen oder daran Tools für Unit- Tests, Continuous Integration oder Projektmanagement anbinden können. Entwickler klonen sich dazu das zentrale Repository und "pushen" ihre Änderungen zurück.

Branching und Merging

Eine der großen Stärken von Git ist es, mit verschiedenen Entwicklungszweigen einer Software jonglieren zu können. Diese sogenannten Branches erlauben es, parallel an verschiedenen Versionen einer Software zu arbeiten. Angenommen, Sie haben gerade eine Version 1.0 Ihrer Software entwickelt und wollen an die Arbeiten an der Version 1.1 starten. In diesem Fall würden Sie einen neuen Entwicklungszweig für die Version 1.1 starten. In diesem können Sie Ihre Arbeit fortsetzen. Sollte in der Version 1.0 ein Fehler auftreten und eine Version 1.0.1 notwendig machen, können Sie im Entwicklungszweig der Version 1.0 auch weiterarbeiten.Die Erstellung und das Hin- und Herschalten zwischen einzelnen Branches geht bei Git in Sekundenschnelle, was auch daran liegt, dass das gesamte Repository lokal verfügbar ist. Da die Erstellung eines Entwicklungszweiges so einfach und schnell geht, wird im Allgemeinen empfohlen, auch bei kleineren Änderungen, wie der Arbeit an einem neuen Feature, einen neuen Branch anzulegen.

$> git branch feature_156

Nach dem Branchen befinden sich Ihre Arbeitskopien automatisch im neuen Entwicklungszweig. Änderungen werden somit diesem zugeordnet. Während der Entwicklung können Sie innerhalb des gleichen Verzeichnisses einfach zwischen zwei Entwicklungszweigen hin- und herwechseln. Dies geschieht mit dem Checkout-Befehl. Das folgende Listing zeigt den Wechsel zwischen zwei Branches:

$> git checkout master $> git checkout feature_156

Neben der Erstellung und dem Arbeiten mit Entwicklungszweigen ist das Zusammenführen zweier Zweige besonders wichtig. Selbstverständlich gibt es auch hierfür einen entsprechenden Kommandozeilenbefehl. Diesem wird entweder ein Entwicklungszweig oder eine Revision mitgegeben, die mit der aktuellen Version zusammengeführt werden soll.

$> git merge feature_156

In der Regel geht das Zusammenführen vollautomatisch ohne Zutun des Benutzers von statten. Nur wenn es zu Überschneidungen bei Änderungen kommt, wird dieser Konflikt automatisch von Git erkannt. Hier ist dann ein manueller Eingriff notwendig.

Code-Hosting

image.jpg

© Internet Magazin

Github ist der populärste Code-Hosting-Dienst für Git, das für Open-Source-Projekt komplett kostenlos ist.

Zwar wird für die Entwicklung mit Git nicht zwingend ein Server benötigt, aber gerade bei der Entwicklung in einem Team ist es durchaus sinnvoll ein zentrales Repository anzulegen. Natürlich kann dies auf einem eigenen Server abgelegt werden, es stehen aber auch sogenannte Code- Hosting-Plattformen zur Verfügung, die Git unterstützen. Für Open-Source-Projekte können Sie beispielsweise auf Sourceforge oder Google-Code zurückgreifen. Die Vorzeigeplattform ist allerdings Github (www.github.com), dort können sowohl freie als auch geschlossene Projekte verwaltet werden. Auch rein kostenpflichtige Lösungen wie beispielsweise Hosting-Lösungen wie Codesion, Assembla oder Unfuddle bieten mittlerweile Git-Support. Eine komplette Liste an Code-Hosting-Systeme ist unter https://git.wiki.kernel.org/index.php/Git Hosting verfügbar.Wer möchte, der kann mit Gitosis (eagain.net/gitweb/?p=gitosis.git) auch sein eigenes Git-Hosting-System aufbauen. Wer allerdings Gitosis auf einem Windowsserver nutzen möchte, auf den kommt einiges an Arbeit zu, bis ein solches System einsatzbereit ist.

Fazit

Git ist schon lange den Kinderschuhen entwachsen und stellt die Basis vieler Projekte dar. Die Entwicklung schreitet kontinuierlich voran. Wer bereits mit anderen VCS wie beispielsweise Subversion gearbeitet hat, der wird nur wenig Einarbeitungszeit benötigen, um produktiv mit Git zu arbeiten. Die Vorteile von Git gegenüber klassischen VCS sind immens, ein Umstieg lohnt sich allemal. Allein die Geschwindigkeitsgewinne und das verbesserte Branchen und Mergen sind Grund genug für einen Umstieg.Mittlerweile existieren viele Code-Hosting- Systeme, die eine Unterstützung von Git bieten. Das populärste ist Github, das bei Open-Source-Systemen die größte Verbreitung besitzt.

Alternativen

Neben Git sind noch weitere DVCS verfügbar. Zwei davon können Git in puncto Funktionalität, Geschwindigkeit, Verbreitung und Community durchaus das Wasser reichen. Als Basis der Entwicklung von Ubuntu ist Bazaar (bazaar.canonical.com/) entstanden. Leider hat Bazaar diese Ecke nie so richtig verlassen, sodass vergleichsweise wenige Projekte mit diesem DVCS arbeiten.Dies hat zur Folge, dass weniger Tools und eine kleinere Community vorhanden sind. Ein etwas ernster zu nehmender Konkurrent ist Mercurial, das meist Hg genannt wird (Hg ist das chemische Zeichen für Quecksilber, im englischen Mercury). Wie Bazaar ist Mercurial in Python programmiert.Im Gegensatz zu Bazaar hat Hg allerdings eine große Anhängerschaft, was dazu geführt hat, dass hier ein größeres Ecosystem an Werkzeugen, Clients und Supportmöglichkeiten vorhanden ist. Prominente Opern-Source-Projekte, die Mercurial nutzen, sind beispielsweise Mozilla, OpenOffice, Netbeans oder Python.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…