Kursinhalt
GitHub-Grundlagen
GitHub-Grundlagen
Synchronisierung Der Repositories
Wie im vorherigen Kapitel erwähnt, müssen wir unseren lokalen Branch mit dem Remote-Repository synchronisieren. Dazu führen wir den Befehl git pull
aus:
Als wir den Befehl git pull
ausgeführt haben, hat Git Updates abgerufen, aber festgestellt, dass unser lokaler und der Remote-Branch auseinander gelaufen sind. Das bedeutet, dass es auf beiden Branches Änderungen gibt, die abgeglichen werden müssen. Git konnte nicht fortfahren, da festgelegt werden muss, wie mit diesen Unterschieden umgegangen werden soll. Daher setzen wir die Merge-Option und führen den Befehl git pull
erneut aus:
Die Rebase-Operation wird später in diesem Kurs behandelt.
Git hat versucht, die lokalen und entfernten Änderungen an README.md
automatisch zusammenzuführen, ist jedoch auf einen Merge-Konflikt gestoßen. Werfen wir einen Blick auf den Commit-Baum, der anzeigt, wo die Abweichungen und Konflikte aufgetreten sind:
Auflösen des Konflikts
Wie Sie sehen können, teilen sich unser aktueller lokaler Commit und der Commit im Remote-Branch main
einen gemeinsamen Vorgänger, aber sie weichen voneinander ab, was zum Merge-Konflikt führt, den wir beheben müssen. Dazu öffnen wir die Datei README.md
im Vim-Editor:
Um diesen Konflikt zu lösen, können wir in den Einfügemodus wechseln, indem wir i
drücken, die Konfliktmarkierungen entfernen und diese Änderungen wie folgt kombinieren:
Als Nächstes sollte die Escape-Taste gedrückt, :wq
eingegeben und anschließend die Enter-Taste betätigt werden, um die Änderungen zu speichern und Vim zu beenden. Um den Merge abzuschließen, muss die Datei README.md
mit den entsprechenden Befehlen zum Staging-Bereich hinzugefügt und anschließend committed werden:
Nach Ausführung des Befehls git commit
öffnet sich der Standard-Texteditor (höchstwahrscheinlich Vim). Es kann entweder die Standard-Commit-Nachricht übernommen und Vim wie zuvor verlassen werden, oder die Nachricht kann bearbeitet und anschließend beendet werden.
Abschließend kann der Befehl git push
gefahrlos ausgeführt werden. Die erfolgreiche Three-Way-Merge-Operation lässt sich durch Anzeige des Commit-Baums überprüfen:
Lassen Sie uns zusammenfassen, was wir in diesen beiden Kapiteln gemacht haben:
Wir haben die Zusammenarbeit simuliert, indem wir sowohl lokal als auch remote Änderungen an der Datei
README.md
vorgenommen haben;Zuerst haben wir eine Änderung direkt im Remote-Repository committet und anschließend eine andere Änderung lokal vorgenommen;
Beim Versuch, unsere lokalen Änderungen zu pushen, sind wir auf einen Konflikt gestoßen, da das Remote-Repository neue Updates enthielt;
Um dies zu lösen, haben wir die Änderungen aus dem Remote-Repository gepullt, was zu einem Merge-Konflikt geführt hat;
Anschließend haben wir den Konflikt manuell in der Datei
README.md
mit dem Vim-Editor gelöst, die gelösten Änderungen committet und die finalen Updates erfolgreich ins Remote-Repository gepusht.
Danke für Ihr Feedback!