Was sind die Vorteile von Git gegen SVN?
Ganz viele, welche bei SVN als feature vermarktet werden.
Repo ist lokal
Alles geht zuerst gegen dein lokales Repository. Jedes hinzufügen von Dateien, commiten von einem Changeset, erstellen und löschen von Branches, Tags, mergen, … Einfach alles. Kein Warten auf Server und andere Benutzer. Erst beim Push / Pull gibt es eine Netzwerkverbindung, welche auch nur ein sauberes Delta aller Changes übermittelt.
Beliebig viele Remotes
Praxisrelevant, wenn man für Kunden bei Kunden und mit deren Infrastruktur zu arbeiten hat, aber selber ein Office. Du kommst nicht auf ein remote Server, möchtest deine Arbeit aber “gesichert”, sprich verteilt? Übermittle es auf einen anderen. Github gefällt dir nicht mehr? Zügle dein Repository. Dies mit SVN zu machen ist beinahe unmöglich.
KEINE Locks
Durch die lokalen Repositories ist das sperren von Dateien nicht möglich. Wie häufig geht ein Entwickler in das Wochenende und hat noch gesperrte Dateien? Zig mal gesehen, zig mal bei der Arbeit ausgebremst worden. Locks sind immer schlecht. Systeme, welche Locks brauchen können nicht mit Konflikten umgehen.
Branch und merge
Zumindest bis SVN Version 1.5 war es in SVN unmöglich laufende Merges von Branch x zu Branch y zu machen. Z.B. von einem Master in den Dev und in einen Release Branch und anschliessend vom Release Branch wieder in einen Dev Branch (du siehst, merges über mehrere Branches hinweg).
Wie gut sie das nun können, weiss ich nicht. Ich weigere mich SVN einzusetzten. Aber GIT merkt sich zumindest die Branches und konnte schon immer den Merge-Pfad nachvollziehen. Minimale Konflikte, und nur noch die relevanten.
Da gibt es noch viele mehr, aber das sind aus meiner Sicht die drei wichtigsten.