Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Synchronisierung Der Repositories | Fortgeschrittenere Workflows
GitHub-Grundlagen
course content

Kursinhalt

GitHub-Grundlagen

GitHub-Grundlagen

1. Einführung in GitHub
2. Grundlegende Interaktion mit Remotes
3. Fortgeschrittenere Workflows

book
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:

Note
Hinweis

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:

Note
Hinweis

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:

  1. Wir haben die Zusammenarbeit simuliert, indem wir sowohl lokal als auch remote Änderungen an der Datei README.md vorgenommen haben;

  2. Zuerst haben wir eine Änderung direkt im Remote-Repository committet und anschließend eine andere Änderung lokal vorgenommen;

  3. Beim Versuch, unsere lokalen Änderungen zu pushen, sind wir auf einen Konflikt gestoßen, da das Remote-Repository neue Updates enthielt;

  4. Um dies zu lösen, haben wir die Änderungen aus dem Remote-Repository gepullt, was zu einem Merge-Konflikt geführt hat;

  5. 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.

question mark

Welcher Befehl stellt Git so ein, dass beim git pull Merge (nicht Rebase) verwendet wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

GitHub-Grundlagen

GitHub-Grundlagen

1. Einführung in GitHub
2. Grundlegende Interaktion mit Remotes
3. Fortgeschrittenere Workflows

book
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:

Note
Hinweis

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:

Note
Hinweis

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:

  1. Wir haben die Zusammenarbeit simuliert, indem wir sowohl lokal als auch remote Änderungen an der Datei README.md vorgenommen haben;

  2. Zuerst haben wir eine Änderung direkt im Remote-Repository committet und anschließend eine andere Änderung lokal vorgenommen;

  3. Beim Versuch, unsere lokalen Änderungen zu pushen, sind wir auf einen Konflikt gestoßen, da das Remote-Repository neue Updates enthielt;

  4. Um dies zu lösen, haben wir die Änderungen aus dem Remote-Repository gepullt, was zu einem Merge-Konflikt geführt hat;

  5. 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.

question mark

Welcher Befehl stellt Git so ein, dass beim git pull Merge (nicht Rebase) verwendet wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 2
some-alt