Warum mir Git mehr Flexibilität ermöglicht
In letzter Zeit habe ich mich sehr viel mit den sogenannten DeCentralized Versioning Systems (kurz DCVS) beschäftigt. Im Gegensatz zu den bekannten zentralen Systemen wie CVS oder Subversion basiert die Idee der DCVS darauf, dass jeder sein eigenes vollständiges lokales Repository hat. Hieraus ergeben sich nette Vorteile. So wird es z.B. möglich, auch offline arbeiten zu können. Dies ist gerade für mobile Entwickler hilfreich, da nicht immer eine Internetverbindung zum zentralen Server besteht. Dabei geht es nicht nur um die Möglichkeit, Änderungen einchecken/auschecken zu können, sondern auch Funktionen wie diff, log, annotate. Der wichtigste Vorteil für mich persönlich ist, dass ich dank Git lokale Branches anlegen kann. Diese Branches existieren im Gegensatz zu Subversion nur lokal. In Git wird dies typischerweise als "Topic-Branches" bezeichnet. Ich habe mir inzwischen angwöhnt, neue Features immer in eigenen Branches zu entwickeln, um sie dann, sofern sie meinen Ansprüchen genügen, in den Mainbranch zu mergen. Da das Erstellen von Branches eine Sache von Sekunden ist und das Mergen in Git sehr mächtig, wird man durch die Verwendung von Branches meiner Meinung nach sehr viel experimentierfreudiger. Möchte man eine neue Idee mal kurz ausprobieren, so legt man sich schnell einen neuen Branch an und probiert es einfach aus. Ist man sich noch nicht ganz sicher, so lässt man den Branch erstmal ruhen und arbeitet an einem anderen Branch weiter. Diese Flexibilität bietet Subversion so nicht, da jeder Branch aufgrund der zentralen Natur für alle sichtbar ist. Branches in Subversion werden typischerweise eher für Wartungszwecke von Releases verwendet, als denn zum Ausprobieren neuer Features. Ausser es handelt sich um ein zentrales Feature, an dem viele Entwickler mitarbeiten möchten.
Your Comment
Don't be shy. Please feel free to add your comment.