Ich kann GIT nicht für TFS richtig arbeiten in Visual Studio im Umgang mit Zusammenführungen. Grundsätzlich sind alle Merge-Operationen, die beim Ziehen der letzten Version des Codes auftreten, ein Albtraum.Wie man ordnungsgemäß mit Zusammenführungen bei einem GIT PULL in Visual Studio umgehen kann
Ich spreche speziell über Verschmelzungen, die auftreten, wenn jemand anderes Code aus dem gleichen Zweig ziehen (das heißt ich bin nicht über Szenarien sprechen mehrere Zweige beteiligt).
Ich bin auch über die eingebaute in GIT-Plugin von Visual Studio, so wenden Sie sich bitte Befehlszeile ausführen lassen nicht speziell sprechen Befehle, die ich kenne (wie Fütterungsmaterial), wenn es eine andere Lösung ist aus innerhalb der IDE ("Sie können nicht" wäre aber eine gültige Antwort).
Hier ist, wie das Problem zu reproduzieren:
- gibt es zwei Entwickler, A und B, auf der gleichen Branche arbeiten
- Entwickler A schiebt einige begehen, dass Dateien F1 und F2
- Entwickler B modifiziert Ändert Dateien F1 und F3
- Entwickler B schreibt Änderungen an F1 und F3
- Entwickler B zieht: Visual Studio erkennt einen Konflikt in Datei F1 (was erwartet wird)
- Entwickler B löst den Konflikt auf F1
Jetzt ist hier die Frage: alle Dateien F1, F2 und F3 sind in der Warum Zustand für B. geändert? Entwickler B hat nur die Dateien F1 und F3 geändert. Ich sehe keinen gültigen Grund für F2 in geändert Zustand zu sein, weil B es nicht geändert hat.
Ich verstehe, dass lokal die F2-Datei ist nicht das gleiche wie vor dem ziehen, aber das Problem ist, dass B im Grunde nicht seine Änderungen auf F1 und F3 vor dem Drücken, weil alle anderen arbeiten (in der vereinfachten Fall oben, auf F2) erscheint auch in seiner Änderungsliste.
In unseren realen Szenarien gibt es mehr Entwickler auf der gleiche Branche arbeiten, und jedes verschmelzen ist ein großer Ausfall in der Branche Geschichte: Visual Studio zeigt im Grunde ein Bündel von 50-oder-so geändertenen Dateien für jeden Zusammenführen (wenn der Entwickler nur 1 oder 2 Dateien geändert hat).
Dieses Problem immer tritt mit einer up-to-date klug genug, um Visual Studio 2013 Visual Studio 2015 scheint zeigen F2 nicht so modifiziert, aber nicht immer.
Wie behebt man dieses Verhalten? Derzeit ist GIT eine PITA, die in Visual Studio verwendet wird.
EDIT:
Hier ist ein visuelles Beispiel.Auf der linken Seite, die Geschichte, wie in VS 2013 gezeigt: viele modifizierte Dateien. Auf der rechten Seite die gleiche Geschichte (dasselbe Repository, dieselbe Maschine, dasselbe commit ... etc.) Wie in VS 2015 gezeigt. Offensichtlich zeigt VS 2015 etwas anderes und etwas besser (ich sehe nur meine Änderungen). Beachten Sie, dass dies nicht immer funktioniert auf diese Weise, manchmal VS 2015 zeigt Dateien, die ich nicht geändert habe, genau wie VS 2013 tut.
Diese Frage war zu diesem Verhalten, wenn Ich bin über das Ergebnis einer Zusammenführung schieben, aber es ist genau das gleiche, wenn ich einfach die Geschichte eines alten merge zu sehen, wie unten dargestellt:
Die Fragen sind:
- ist das ein Fehler?
- wenn nicht, ist dies dokumentiert?
- Wie soll ich auf jeden Fall mit GIT arbeiten, vor allem mit VS 2013, in Bezug auf die Inkonsistenz wie oben gezeigt?
Also Entwickler B hat F1 und F3 geändert, aber nicht auf den Remote-Zweig geschoben, richtig? – TriskalJM
@TriskalJM Ja das ist es – ken2k
Im Allgemeinen betrachten Sie nicht eine nicht festgeschriebene Zusammenführung, um zu versuchen, festzustellen, wie zwei Zweige sich unterscheiden. Normalerweise würden Sie die Verzweigung mit der Upstream-Verzweigung vergleichen, nachdem Sie die Zusammenführung abgeschlossen und festgeschrieben haben. https://git-scm.com/book/en/v2 und http://www.gitforvisualstudio.com/ können helfen, einige dieser Konzepte zu erläutern. –