Auflösen eines Konflikts
Um die soeben vorgenommene Änderung in das Remoterepository zu verschieben, müssen wir den Konflikt manuell auflösen. Zu diesem Zweck führen wir einen Pull-Vorgang durch, um den neuesten Änderungssatz aus dem Remoterepository zu erhalten.
Führen Sie den folgenden git pull-Befehl aus.
$ git pull origin main
Username:
Password:
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://example.backlog.com/git/BLGGIT/tutorial.git
* branch main -> FETCH_HEAD
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.
Es wird eine Meldung angezeigt, die vor einem Merge-Konflikt warnt.
Wenn Sie die Datei sample.txt
öffnen, sehen Sie von Git hinzugefügte Markierungen, die auf Konflikte in diesem Dateiabschnitt hinweisen, wie unten dargestellt.
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 the remote repository
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91
Wir werden den Konflikt auflösen, indem wir beide Änderungen akzeptieren und die Markierung entfernen.
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 the remote repository
Sobald wir den Konflikt gelöst haben und sich der Inhalt der Datei geändert hat, übertragen wir die Änderungen per Commit.
$ git add sample.txt
$ git commit -m "merge"
[main d845b81] merge
Wir verfügen jetzt über die neuesten Änderungen aus dem Remoterepository.
Wir können die Genauigkeit des Repositoryverlaufs mit dem Befehl git log überprüfen. Die Option --graph
zeigt den Branch-Verlauf in einem grafischen Format an, und die Option --online
versucht, die Ausgabemeldung kompakt auszugeben.
$ git log --graph --oneline
* d845b81 merge
|\
| * 4c01823 append description of the pull command
* | 95f15c9 append description of the commit command
|/
* 3da09c1 append description of the add command
* ac56e47 first commit
Dies zeigt an, dass die beiden Verläufe erfolgreich mit dem neuen Merge-Commit zusammengeführt wurden. Wir können diese Änderung nun sicher und ohne Merge-Konflikte in das Remoterepository übertragen.