Ich gabelte ein Github-Repo und arbeitete an meinem Github-Repo.
Ich habe Pull-Anfragen gestellt und es wurde abgeschlossen.
Danach hatte der Upstream noch einige Commits, also möchte ich jetzt wieder aufbauen, ich denke, das ist was ich tun muss.
Aber ich bekomme diese Zusammenführungskonflikte:
First, rewinding head to replay your work on top of it...
Applying: Issue 135 homepage refresh
Using index info to reconstruct a base tree...
<stdin>:17: trailing whitespace.
%h4
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging app/views/layouts/application.html.haml
CONFLICT (content): Merge conflict in app/views/layouts/application.html.haml
Auto-merging app/views/home/index.html.haml
CONFLICT (content): Merge conflict in app/views/home/index.html.haml
Auto-merging app/views/home/_group_projects.html.haml
CONFLICT (content): Merge conflict in app/views/home/_group_projects.html.haml
Failed to merge in the changes.
Patch failed at 0001 Issue 135 homepage refresh
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
Ich weiß nicht, wie ich das beheben soll, bitte helfen Sie.
git
github
git-rebase
Pahnin
quelle
quelle
Antworten:
Rebasing kann echte Kopfschmerzen sein. Sie müssen die Zusammenführungskonflikte lösen und die Basis neu festlegen. Sie können beispielsweise das Zusammenführungswerkzeug verwenden (das sich je nach Ihren Einstellungen unterscheidet).
Fügen Sie dann Ihre Änderungen hinzu und fahren Sie fort
Viel Glück
quelle
Wenn Sie während der Rebase einen Konflikt haben, haben Sie drei Möglichkeiten:
Sie können ausführen
git rebase --abort
, um die Rebase vollständig rückgängig zu machen. Git bringt Sie in den Zustand Ihres Zweigs zurück, wie er vor dem Aufruf von git rebase war.Sie können ausführen
git rebase --skip
, um das Festschreiben vollständig zu überspringen. Dies bedeutet, dass keine der durch das problematische Commit eingeführten Änderungen berücksichtigt wird. Es ist sehr selten, dass Sie diese Option wählen würden.Sie können den Konflikt wie iltempo sagte beheben. Wenn Sie fertig sind, müssen Sie anrufen
git rebase --continue
. Mein Mergetool ist kdiff3, aber es gibt noch viele weitere, mit denen Sie Konflikte lösen können. Sie müssen Ihr Merge-Tool nur in den Einstellungen von git festlegen, damit es aufgerufen werden kann, wenn Sie https://git-scm.com/docs/git-mergetool aufrufengit mergetool
Wenn keines der oben genannten Verfahren für Sie funktioniert, gehen Sie spazieren und versuchen Sie es erneut :)
quelle
<<<<<
Wenn Sie eine Menge Verpflichtungen haben, die Sie neu begründen müssen, und ein Teil von ihnen Konflikte verursacht, tut das wirklich weh. Aber ich kann einen weniger bekannten Ansatz vorschlagen, wie man "alle Konflikte unterdrückt".
Überprüfen Sie zunächst den temporären Zweig und starten Sie die Standardzusammenführung
Sie müssen Konflikte lösen, aber nur einmal und nur echte. Stellen Sie dann alle Dateien bereit und beenden Sie die Zusammenführung.
Kehren Sie dann zu Ihrem Zweig zurück (lassen Sie es Alpha sein ) und beginnen Sie mit der Neubasis, wobei Konflikte jedoch automatisch gelöst werden.
Der Zweig wurde neu basiert, aber das Projekt befindet sich wahrscheinlich in einem ungültigen Zustand. Das ist in Ordnung, wir haben einen letzten Schritt. Wir müssen nur den Projektstatus wiederherstellen, damit er genau wie in Zweig 'temp' ist. Technisch müssen wir nur seinen Baum (Ordnerstatus) über den Befehl git commit-tree auf niedriger Ebene kopieren . Durch das Zusammenführen in den gerade erstellten Commit wurde ein Commit erstellt.
Und temporären Zweig löschen
Das ist alles. Wir haben eine Rebase durch versteckte Zusammenführung durchgeführt.
Außerdem habe ich ein Skript geschrieben, das im Dialog erstellt werden kann. Sie finden es hier .
quelle
Hinweis: Mit Git 2.14.x / 2.15 (Q3 2017) wird die
git rebase
Meldung bei Konflikten klarer.Siehe Commit 5fdacc1 (16. Juli 2017) von William Duclot (
williamdclt
) .(Zusammengeführt von Junio C Hamano -
gitster
- in Commit 076eeec , 11. August 2017)Vor:
Nach:
quelle