Git Interaktive Zusammenführung?
Ich habe zwei Niederlassungen mit der exakt gleichen Datei (incase Sie sich Fragen, es ist eine .sql-Datei) und ich möchte interaktiv Zusammenführen.
Ziemlich viel möchte ich zu öffnen, eine diff-Programm wie ich es Tue, wenn es einen Konflikt gibt (oder Kommandozeile) und wählen Sie genau, welche Linien dort fahren, wo.
Gibt es trotzdem, dies zu tun?
InformationsquelleAutor der Frage Steven | 2012-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, aber es wird meist durch manuell zu machen, dass passieren. Erzählen Sie es Git du bist eine Zusammenlegung der beiden relevanten Bereiche, aber das sollte es nicht versuchen zu verpflichten, das Ergebnis auf seine eigene, (bearbeitet, um hinzufügen: noch Vorspulen, wenn es denkt, der merge ist trivial):
Dann, wirst du Fragen git für die Datei ein, wie es schien, in der zwei Zweige:
und Ihre merge-base,
Werden Sie verbinden Sie mit einem beliebigen Werkzeug, das Sie wollen (z.B.)
werden Sie die Bühne, die (
git add filename
), und dann commit den merge (git commit
).InformationsquelleAutor der Antwort Novelocrat
Ist der einfachste Weg zu tun
git merge <other_branch
danngit mergetool
grafisch lösen der Konflikte. Siehe #10935226 für how to set up mergetool.Das Problem ist, Ihre veränderte Datei kann fast-forward-merge mit dem älteren. Dann müssen Sie ein bisschen mehr schlau.
Novelocrat gibt eine großartige Möglichkeit, um ein wenig tiefer zu Graben, aber Sie müssen oft ändern Sie den ersten Befehl zu
git merge --no-commit --no-ff <other_branch>
weil --no-commit bedeutet eigentlich "Don' T commit den merge...es sei denn, es ist ein fast-forward merge." Es ist ein bisschen von einer stinger für viele Leute, die versuchen, genau das zu tun, was Sie wollen.Manchmal die am wenigsten verwirrende Weise ist nicht sehr stilvoll: check-out die andere Filiale in einer anderen Arbeitskopie haben, verwenden Sie Ihre Lieblings-merge-tool, um die von Ihnen gewünschte version in das Verzeichnis, das Sie wollen, dann Begehen Sie.
InformationsquelleAutor der Antwort Brad O
Gemäß dieser Kern, wo die temp könnte einen vorhandenen Zweig.
https://gist.github.com/katylava/564416
Master:
Auf temp:
... die Stadien alles, also:
Dann beginnen hinzufügen der Stücke, die Sie wollen:
InformationsquelleAutor der Antwort Hugh
Aus der Branche, die Sie Zusammenführen möchten, in:
Diese nicht die Kasse branch_to_merge, aber lassen Sie Sie interaktiv hinzufügen von Gruppen aus dem patch (diff).
http://git-scm.com/docs/git-checkout
InformationsquelleAutor der Antwort taj
Können Sie einfach verwenden WinMerge, DiffMerge, oder jede verfügbare diff/merge-Benutzeroberfläche tool, um die Arbeit zu tun, manuell. Wenn Sie möchten, Haken Sie es in "git difftool", können Sie online suchen, um Wege zu finden, um diese tools für die Arbeit mit git.
InformationsquelleAutor der Antwort John Fisher
Der beste Weg, die ich gefunden habe, dies zu tun ist:
Was dies bedeutet ist erlauben Sie mir, um alles zu sehen meine Filiale gewechselt und bestätigen Sie jede Zeile code, die ich Begehen werde. Dies ist nützlich, wie Sie vor der Zusammenführung von änderungen zurück in die Produktion.
InformationsquelleAutor der Antwort Dustin