Rebasing eines Branches
Eine weitere Möglichkeit, den Branch issue3
in den Haupt-Branch zu integrieren, ist per Befehl git rebase. Mithilfe des rebase-Befehls können wir unsere Verlaufsbaumstruktur bereinigen, wie zuvor in dieser Anleitung beschrieben.
Beginnen wir damit, den vorherigen Merge rückgängig zu machen.
$ git reset --hard HEAD~
So sieht nun unser Verlauf aus:
Wechseln Sie dann zum Branch issue3
, und führen Sie einen Rebase auf den Haupt-Branch durch.
$ git checkout issue3
Switched to branch 'issue3'
$ git rebase main
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
error: could not apply 470d684... My Commit
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 470d684... My Commit
Wenn der Konflikt während des Rebase-Vorgangs auftritt, müssen Sie ihn auflösen, um den Vorgang fortzusetzen.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of a remote repository
>>>>>>> issue3
Sobald der Konflikt behoben ist, können Sie das Rebasing mit der Option --continue
fortsetzen.
Bevor Sie Ihre Änderungen anwenden, öffnet Git Ihren Standard-Texteditor (Vim oder Emacs auf den meisten Unix-Systemen), um Ihnen die Möglichkeit zu geben, die rebase-Nachricht zu bearbeiten. Wenn Sie die Rebase-Operation beenden und rückgängig machen möchten, können Sie dies mit der Option --abort
tun.
$ git add myfile.txt
$ git rebase --continue
Applying: append description of the pull command
Jetzt sieht unser Verlauf folgendermaßen aus:
Da der Branch issue3
per Rebase auf main
festgelegt wurde, können wir nun einen FastForward-Merge vornehmen.
Wechseln Sie zum Haupt-Branch, und führen Sie issue3
mit main
zusammen.
$ git checkout main
Switched to branch 'main'
$ git merge issue3
Updating 8f7aa27..96a0ff0
Fast-forward
myfile.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Der Inhalt der Datei myfile.txt
ist nun identisch mit dem Inhalt der vorherigen Zusammenführung. Der Verlauf sieht nun wie folgt aus: