Versionierung mit git

Dieser Artikel soll eine kurze Beschreibung vom Versionierungssystem git sein.

Da ich momentan begeistert bin von test driven development (tdd) bin ich zwangsweise auf phpunit von Sebastian Bergmann gestossen. In seinem Blog schrieb er, dass er die komplette Versionierung von svn auf git umgestellt hat. Bis anhin kannte ich git noch nicht und fragte mich, was an git genau besser sein soll als in svn, das momentan immer noch das am weitesten verbreitetste Versionierungssystem ist.

Eigenschaften von git

Git ist ein verteiltes Versionierungssystem (nicht so wie svn, dass immer einen zentralen Server hat), welches folgende Eigenschaften besitzt:

  • Nicht lineare Entwicklung – branching und merging ist ein integraler Bestandteil von git (in svn gibt es dies auch, aber in git wird es konsequent angewendet und vorgegeben)
  • kein zentraler Server – Jeder Benutzer besitzt eine eigene vollständige Kopie des Repositorys und kann somit einfach, schnell und umkompliziert lokal entwickeln (zudem ist so ein Repo immer gegen single point of failures geschützt). Um eine gemeinsame Entwicklung zu gewährleisten wird aber normalerweise ein Server Repo aufgesetzt, auf das die Entwickler Zugriff haben (es wird auch das “offizielle Repo” genannt). Server- und lokale Repos sind aber technisch gesehen dasselbe.
  • Alle Repositorys können beliebig Daten untereinander austauschen
  • Jeder Commit ist einzigartig und kann aufgrund der History der vorherigen Commits hergeleitet werden. Vorteil – wenn ein Repo lokal ausgecheckt wird, ist der lokale Commit dasselbe.
  • Alle Aktionen werden historisiert

Auf http://de.whygitisbetterthanx.com/ sieht man schön, warum git so genial ist.

Quellen
git Webside
github Webside
git manual (en)
git auf dem wiki
warum git besser als andere Versionierungssysteme ist – super deutsche Analyse
Installation Git Client unter Windows in Kombination mit github (en)
Ein sauberes Testsystem mit git – einfache Einführung (de)
Ein paar git Befehle kurz erklärt (de)

Fazit

Nach einer kurzen Einarbeitungszeit (git ist noch nicht perfekt für Windows optimiert, daher kommt auch ab und an die Konsole zum Einsatz – und der dezentrale Ansatz muss man auch zuerst verstehen) bin ich begeistert von git – besonders in Kombination mit github. Ich werde meine privaten Projekte nun definitiv mit git Versionieren und werde natürlich an meinem Arbeitsplatz mächtig für git werben (aber erst nachdem ich einige Erfahrungen gesammelt habe).

1 Response

Leave a Reply

Your email address will not be published. Required fields are marked *