Viele Entwickler, aber auch Designer und andere Mitglieder von Software- und Web-Projekten kommen mit Versionskontrollsystemen in Berührung. Am bekanntesten sind vermutlich CVS und Subversion (SVN). Letzteres ist sicherlich auch wegen des Windows-Clients TortoiseSVN recht erfolgreich.
Während CVS und SVN einen zentralen Server für das Projektarchiv verlangen, gibt es im Gegensatz dazu verteilte Systeme wie Monotone. Dieses wurde unter anderem von Linus Torvalds für die Entwicklung des Linux-Kernels in Betracht gezogen. Torvalds entschied sich jedoch, eine komplett neues System zu schreiben. So entstand Git. Git wird mittlerweile von einer Reihe bekannter Projekte wie besagtem Linux-Kernel, Samba, X.org, One Laptop per Child, Ruby on Rails, VLC, Wine und der Mobil-Plattform Android verwendet.
Der wichtigste Unterschied zu zentralen Systemen ist, dass mit Git jeder Entwickler sein eigenes Repository inklusive der gesamten Versions-Historie betreibt und Änderungen von einem Repository in ein anderes kopiert werden. Diese Änderungen werden als weiterer Entwicklungszweig importiert und können auf dieselbe Weise wie ein lokaler Entwicklungszweig verschmolzen werden.
Dieses Erstellen und Verschmelzen von Entwicklungszweigen hat das Ziel, besonders einfach, effizient und auf Zeit zu getrimmt sein. Eine Grundannahme ist, dass Änderungen häufiger mit dem aktuellen Entwicklungszweig verschmolzen werden, anstatt wie bisher nur geschrieben zu werden. In dieser Hinsicht ist eine Optimierung der Handhabung von Entwicklungszweigen natürlich von Vorteil.
Für weitere Infos über die Vorteile und Funktionsweise von Git bietet sich folgender Vortrag von Linus Torvalds vor Google-Mitarbeitern an.
Wer tiefer in die Materie eintauchen und direkt mit dem Arbeiten mit Git beginnen möchte, dem sei folgender Vortrag von Randal Schwartz, ebenfalls vor Google-Mitarbeitern, empfohlen.
Trotz der Vorteile wird es vermutlich noch eine Weile dauern, bis Git von einer breiteren Masse genutzt wird, denn viele Entwickler arbeiten unter Windows. Zwar gibt es eine Version für Windows, nur gibt es bisher keine wirklich guten Anwendungsoberflächen (GUI) dafür. Von der Kommandozeile mal abgesehen. ;-) Die mit Git on MSys mitgelieferte GUI hing sich bei unserem Test auf und TortoiseGit, eine Portierung von TortoiseSVN auf Git, steckt noch sehr in den Kinderschuhen.
Wenn es Leser gibt, die bereits Erfahrungen mit Git haben, würden wir uns über einen Kommentar freuen.
Erwähnenswert sind auch die Systeme Mercurial (http://selenic.com/mercurial) und Bazaar (http://bazaar-vcs.org). Beides sind in - zum größten Teil - in Python geschriebene und daher Platformunabhängige DVCS. Mercurial bietet mit TortoiseHg (http://tortoisehg.sourceforge.net/) auch eine gute Integration in Windows.
wir setzen git mittlerweile in der firma ein. da es viele ide's in unserem umfeld nur für windows gibt haben wir uns entschieden git unter cygwin zu nutzen was sehr gut funktioniert!