Ich und mein Freund Gabel aus dem Haupt-Repository (Upstream). Letzte Nacht hatten wir dieselbe Version dieses Repositorys auf dem lokalen Rechner. Dann habe ich ein neues Feature hinzugefügt und mein Freund hat auch ein neues Feature hinzugefügt. Mein Freund hat eine Anfrage an das Haupt-Repository gesendet und ich habe diese Pull-Anfrage mit dem Upstream-Repository ohne Konflikt zusammengeführt. Und wenn ich von Upstream abhole und mit meinem Master-Zweig fusioniere, kommt es zu Konflikten. Was soll ich in dieser Situation tun, um Konflikte zu lösen? (Das vorgelagerte Repository sollte nach der Konfliktlösung zwei neue Funktionen haben.)Zusammenführen Konflikt Git
Antwort
Gehen Sie einfach durch die Dateien, die durch git status
als Konflikt markiert sind, und finden Sie die Konfliktmarker (Sie können in der Datei nach ====
suchen). Vereinbaren Sie die Änderungen zwischen ihnen, finden Sie heraus, ob noch etwas Unerwartetes durch die Kombination Ihres Codes gebrochen wurde, führen Sie Ihre Tests aus und verwenden Sie dann normal git add
und git commit
, um das neue Feature Ihres Freundes mit Ihrem zu verschmelzen.
Upstream: original with friend's feature with both
\ \ / \ /
\ -- Friend's --/ \ /
\ \ /
---- Yours ------------------------- your merge
Sie git difftool path/filename
in der Konsole eingeben können, ein Werkzeug zu verwenden, um den Konflikt oder benutzen Sie Git-Software zu lösen, die Konfliktlösung in gebaut hat. Ich mag SmartGit (von den Machern von SmartSVN) und TortoiseGit (sehr ähnlich TortoiseSVN).
Beachten Sie, dass Sie auch direkt einen Merge-Konflikt von Eclipse/Egit selbst lösen kann:
Siehe „Egit: Solving Merge Conflicts“:
Sie können den Text auf der linken Seite manuell bearbeiten oder kopieren Stromänderung verwenden aus von rechts nach links, um die widersprüchlichen Änderungen von rechts nach links zu kopieren.
Der nächste Schritt ist aus dem Kontextmenü der Datei, um Team -> Add to index. Als begehen.
Siehe auch http://stackoverflow.com/questions/11674950/how-to-do-an-ours-merge-using-the-eclipse-git-merge-tool als ein Beispiel für diese Werkzeugverwendung. – VonC
Danke, die Informationen wirklich hilfreich ist. –