2016-09-27 5 views
0

Ich versuche mein Problem zu erklären. Ich möchte ein lokales Projekt (nicht unter Git Versionierung) mit den Änderungen in seinem Master-Git-Zweig zusammenführen.Force Git merge nach git-diff Änderungen

Mit anderen Worten, ich habe einige lokale Änderungen an einem Projekt vorgenommen (aber ich habe git nicht benutzt). Zwischenzeitlich wurden einige Modifikationen in den Master-Zweig aufgenommen. Jetzt möchte ich meine lokale Version des Projekts aktualisieren, indem ich eine "Zusammenführung" zwischen meiner lokalen Version und der im Git-Repository durchführe.

Was ich habe versucht:

  • ich einen Zweig des Master erstellt haben;
  • Ich habe meine Änderungen an der neuen Niederlassung kopiert;
  • Ich habe versucht, den Master auf den neu erstellten Zweig zu verschmelzen (und es offensichtlich nicht funktioniert)

Wenn ich git-diff zwischen Niederlassung verwenden und Master ich alle Unterschiede zu sehen. Ich hätte gerne einen Zweig mit solchen Unterschieden, in dem ich die Konflikte, die durch die Unterschiede entstehen, lösen kann.

Irgendwelche Vorschläge, um mein Problem zu lösen?

Antwort

0

Wenn Sie das Commit in master genau bestimmen können, auf dem Sie Ihre lokalen Änderungen basierten, könnten Sie dieses Commit auschecken, eine "alte" Version des Masters "master_old" -branch erstellen, Ihre Änderungen hineinkopieren und sie übernehmen. Dann könnten Sie einfach master in Ihren Zweig zusammenführen und die resultierenden Konflikte lösen.

+0

laufen Leider kann ich ermitteln nicht die alte begehen. –

0

Es scheint kompliziert, vielleicht können Sie ein visuelles Merge-Tool verwenden, um Ihnen zu helfen.

Oder wenn Sie zur letzten Version ohne neue Änderungen gehen wollen, nur git reset --hard HEAD~

mergeconflicts

visual mergetool

+0

Nach den Schritten, die ich gemacht habe, habe ich keine Konflikte. Ich möchte, dass alle Diffs zwischen Master und meinem Zweig als Konflikte behandelt werden. –

+0

Sie können das manuell tun, indem Sie 'git add -p' verwenden, dann' y', um diese Zeit hinzuzufügen, 'n' für diesmal nicht hinzufügen,' s' für separate kleine, dann 'commit'. So können Sie Ihre vor Änderungen hinzufügen, alt binden, dann Ihre neuen Änderungen hinzufügen, neu übernehmen. – ColorWin