Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Verwenden von Git
  6. Verwenden von Branching in Git
  7. Auflösen eines Merge-Konflikts
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Auflösen eines Merge-Konflikts

Im nächsten Schritt führen wir die Branches issue2 und issue3, die wir im letzten Schritt erstellt haben, mit dem Haupt-Branch zusammen.

Wechseln Sie zunächst zu main, und führen Sie issue2 mit einem Fast-Forward-Merge zusammen.

$ git checkout main
Switched to branch 'main'
$ git merge issue2
Updating b2b23c4..8f7aa27
Fast-forward
myfile.txt |    2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)

Dies ist nun der Verlauf:

Current history

Versuchen Sie im nächsten Schritt, issue3 mit main zusammenzuführen.

$ git merge issue3
Auto-merging myfile.txt
CONFLICT (content): Merge conflict in myfile.txt
Automatic merge failed; fix conflicts and then commit the result.

In diesem Fall hat Git einen Konflikt erkannt, da die Datei myfile.txt in jedem Branch einen anderen Inhalt in derselben Zeile hat und issue3 nicht automatisch mit main zusammenführen kann.

Die Datei myfile.txt sieht nun etwa so aus:

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

In der Datei myfile.txt finden Sie von Git hinzugefügte Markierungen mit Informationen über den Konflikt. Wir müssen den Konflikt manuell beheben, wie unten gezeigt.

Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Save the status of an index
pull: Obtain the content of a remote repository

Sobald der Konflikt behoben ist, übertragen Sie die Änderung per Commit.

$ git add myfile.txt
$ git commit -m "merge issue3 branch"
# On branch main
nothing to commit (working directory clean)

Der Verlauf sieht dann folgendermaßen aus:

Current history

Sie können sehen, dass ein neuer Merge-Commit als Ergebnis der Konfliktlösung erstellt worden ist. Außerdem verweist der Haupt-Branch jetzt auf den letzten Merge-Commit. Dies ist ein Nicht-Fast-Forward-Merge.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life