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.
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).
Pingback: Strukturierung Versionierung mit Subversion | DaRaFF's Blog