Was ist der Unterschied zwischen SVN und Git zum Zusammenführen?
Wie der Titel schon sagt, ich bin neugierig, warum so viele Menschen tout Git als überlegene alternative zu branching - /merging-über SVN. Ich bin vor allem neugierig, weil Zusammenführen SVN saugt und ich würde gerne eine alternative Lösung.
Wie funktioniert Git Griff Verschmelzung besser? Wie funktioniert es?
Beispielsweise in SVN, wenn ich die folgende Zeile:
Hallo Welt!
Dann user1 ändert Sie zu:
Hallo Welt!1
dann user2 geändert:
Hallo Welt!12
Dann user2 begeht, dann user1 verpflichtet, SVN würde Ihnen ein Konflikt. Kann Git lösen etwas einfacher als das?
InformationsquelleAutor der Frage Alexander | 2010-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass heißt nach dem merge mit dem Konflikt und keine VCS jemals lösen das für Sie.
Sie müssen manuell lösen Sie den merge selber.
Wie bereits in Warum merging in git ist besser als SVNder eigentliche Unterschied ist in der Geschichte der Aufnahme von commits:
Erlaubt Git zu erinnern, was bereits zusammengeführt, reduziert deutlich die Konflikte vorkommen.
So ist es die merge-worflow , Git behandelt viel mehr anmutig als SVN:
Sehen Merge Git vs. SVN für konkrete Beispiele.
InformationsquelleAutor der Antwort VonC
Den spezifischen Konflikt, die Sie erwähnen, ist immer unlösbar. Es gibt einfach keinen Weg für ein merge-tool, zu wissen, welche version beibehalten werden sollte.
Git ist wohl besser als SVN im Umgang mit lösbaren Konflikte, obwohl. Seine primäre merge-Strategie ist rekursiv, das findet der gemeinsame Vorfahr der beiden commits ändern die gleiche Datei und hat eine drei-Wege-merge. Es hat auch einige integrierte Funktionen für die Erfassung und Wiederverwendung von Konfliktlösungen (git-rerere) und eine Vielzahl von anderen merge-Strategien für spezielle Fälle.
Git ' s Vorteil in der Zusammenlegung ist, dass er Teil der Geschichte. Ein merge-commit wird ein commit mit zwei Eltern. Git ' s Modell der Geschichte (gerichtete azyklische graph) rechnet damit, dass es zu sein, begeht, wie dieses. Dies bedeutet, dass weitere führt in der Zukunft genauso funktioniert, wie Sie sollte. Immer. (Ja, es gibt manchmal Konflikte, aber Sie sind Reale Konflikte, nicht eine Unfähigkeit zu behandeln, die Zusammenführen.)
SVN, auf der anderen Seite, versucht zu verfolgen, wo Zusammenführungen aufgetreten ist, aber sein Modell ist noch von Natur aus linear. Die Geschichte, gerade noch wurde ein einzelner string verpflichtet, with merge-tracking-Informationen bieten zusätzliche Hilfe. Von dem, was ich gehört habe, SVN, können nicht immer damit umgehen komplexer merge-patterns richtig. (Ein Beispiel dafür ist eine reflektierende merge - Zusammenführen von A in B, dann von B in A.)
InformationsquelleAutor der Antwort Cascabel