Git – Behebung eines Konflikts zwischen Master- und Feature-Branch vor der Pull-Anfrage

Lesezeit: 2 Minuten

Ich muss eine Pull-Anfrage an ein Repo stellen. Ich habe das Projekt geklont und es hat nur einen Zweig: master

Ich bezahle eine neue Filiale feature und übertrage meine Änderungen in diesen Zweig.

Ich schiebe meinen Zweig auf Github und kann jetzt eine Pull-Anfrage stellen. Also mache ich es, aber es sagt mir jetzt, dass ich Konflikte habe.
Geben Sie hier eine Bildbeschreibung ein

Ich verstehe das Problem. master liegt vorn feature weil ich die letzten vorgenommenen Änderungen nicht übernommen habe, um sie zu beherrschen, als ich daran gearbeitet habe feature.

Wie kann ich es reparieren ? Wie kann ich die letzten Änderungen des Masters in mein „ziehen“. feature Zweig ?

  • Sie müssen lokal zusammenführen oder eine neue Basis erstellen und das Ergebnis übertragen.

    – CollinD

    29. November 2016 um 11:05 Uhr

Behebung durch Zusammenführung:

git fetch origin         # gets latest changes made to master
git checkout feature     # switch to your feature branch
git merge master         # merge with master
# resolve any merge conflicts here
git push origin feature  # push branch and update the pull request

Behebung per Rebase:

git fetch origin         # gets latest changes made to master
git checkout feature     # switch to your feature branch
git rebase master        # rebase your branch on master
# complete the rebase, fix merge conflicts, etc.
git push --force origin feature

Beachten Sie sorgfältig, dass die --force Option für den Push nach dem Rebasing ist wahrscheinlich erforderlich, da das Rebasing die Datei effektiv neu schreibt feature Zweig. Das bedeutet, dass Sie Ihren alten Zweig in GitHub durch Force-Pushing überschreiben müssen.

Unabhängig davon, ob Sie einen Merge oder einen Rebase durchführen, sollten die Konflikte anschließend gelöst sein und Ihr Prüfer sollte in der Lage sein, den Pull-Request abzuschließen.

  • Hey, ich komme hierher. Gleicher Fall, aber nach beiden Fixes erhalte ich einen Feature-Zweig mit Commits von anderen Zweigen, die vorher nicht in seinem Verlauf waren. Irgendeine Ahnung, warum das so sein könnte?

    – Jared

    10. April um 16:39 Uhr

Benutzeravatar von Sajib Khan
Sajib Khan

$ git checkout feature                  
$ git fetch
$ git pull origin master

Nun soll es zu Konflikten kommen. Wenn Sie nun die Änderungen des Masters beibehalten möchten

$ git status                           # See the untracked files (conflict files)
$ git checkout --theirs <file-name>    # Accept the master's change

Oder wenn Sie Ihre behalten möchten (features Änderungen ):

$ git checkout --ours <file-name>

Hinzufügen, Commit und Push-In feature Zweig

$ git commit -am <commit-message>      # Add & Commit
$ git push origin HEAD                 # Push to remote feature branch

1450510cookie-checkGit – Behebung eines Konflikts zwischen Master- und Feature-Branch vor der Pull-Anfrage

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy