Zwei Personen, eine Preisliste
Zwei Mitarbeitende eines kleinen Shops bearbeiten am selben Nachmittag die Preisliste. Eine erhöht einen Preis. Der andere korrigiert in derselben Zeile einen Tippfehler.
Teilen sie einen Ordner, verliert eine Person Arbeit. Versionsverwaltung behält beide Fassungen und zeigt genau, wo sie sich widersprechen.
Am Ende dieser Lektion
Notiz
Ich kann auf einem Branch arbeiten und ihn wieder zusammenführen.
Schlüsselbegriffe
| Begriff | Was er bedeutet |
|---|---|
| Remote | eine gemeinsame Kopie eines Repositorys auf einem Server |
| Klonen | ein Repository mit seinem ganzen Verlauf kopieren |
| Branch | eine eigene Linie von Arbeit mit eigenen Commits |
| Merge | die Arbeit eines Branches in einen anderen übernehmen |
| Konflikt | ein Merge, bei dem zwei Branches dieselben Zeilen änderten |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Klon kopiert den ganzen Verlauf
Ein Remote ist die gemeinsame Kopie eines Repositorys auf einem Server wie Gitea. Um daran zu arbeiten, klonen Sie es. Sie erhalten jede Datei und jeden früheren Commit.
Der Gitea-Server des Labs hält ein Repository namens hello-git. Der erste Run klont es in einen Übungsordner review. Der zweite liest seinen Verlauf, neueste zuerst.
Das Repository nach review klonen
git clone http://gitea:3000/student/hello-git.git reviewHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Verlauf lesen, eine Zeile je Commit
git -C review --no-pager log --format="%h|%an|%s"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein Branch hält Ihre Arbeit getrennt
Ein Branch ist eine eigene Linie von Commits. Sie ändern darauf Dateien, und der Hauptbranch bleibt, wie er war.
Jeder Commit hält fest, wer ihn machte. Nennen Sie Git zuerst Ihren Namen und Ihre Adresse für diesen Ordner. Legen Sie dann einen Branch spaeter-oeffnen an und ändern Sie darauf eine Zeile.
Dieser Ordner dient nur zum Üben. Sie pushen ihn nicht.
Ihren Namen für diesen Ordner setzen
git -C review config user.name "Studierende"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ihre Adresse für diesen Ordner setzen
git -C review config user.email "[email protected]"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Einen Branch anlegen und wechseln
git -C review switch -c spaeter-oeffnenHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Zeile auf dem Branch ändern
sed -i 's/Ada Lovelace/Ada Lovelace (Gastgeberin)/' review/visitors.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Änderung auf dem Branch committen
git -C review commit -am "Ada als Gastgeberin vermerken"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein Merge führt zwei Linien zusammen
Ändern zwei Branches verschiedene Zeilen, führt Git sie ohne Hilfe zusammen. Ändern beide dieselbe Zeile, kann Git nicht wählen. Es hält an und fragt Sie. Das ist ein Konflikt.
Sie erzeugen jetzt absichtlich einen. Gehen Sie zurück auf den Hauptbranch. Ändern Sie dieselbe Zeile anders. Committen Sie. Führen Sie dann den anderen Branch ein.
Zurück auf den Hauptbranch wechseln
git -C review switch mainHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Dieselbe Zeile anders ändern
sed -i 's/Ada Lovelace/Ada L. Lovelace/' review/visitors.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Änderung auf main committen
git -C review commit -am "Die Initialen ausschreiben"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den anderen Branch einführen
git -C review merge spaeter-oeffnenHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Lesen, was Git in die Datei schrieb
cat review/visitors.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Drei Markierungszeilen zeigen die zwei Fassungen
Git schrieb beide Fassungen in die Datei. Die Zeile <<<<<<< HEAD beginnt die Fassung des Branches, auf dem Sie stehen. Die Zeile ======= beendet sie. Die Zeile >>>>>>> spaeter-oeffnen beendet die andere Fassung.
Zum Lösen bearbeiten Sie die Datei zum gewünschten Text und löschen die drei Markierungszeilen. Dann folgen git add und git commit.
Hier halten Sie stattdessen an und machen den Merge rückgängig.
Den Merge rückgängig machen
git -C review merge --abortHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Beide Linien als Graph ansehen
git -C review --no-pager log --oneline --graph --allHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Irrtum
Warnung
Viele glauben, ein Konflikt heiße, das Repository sei kaputt oder jemand habe einen Fehler gemacht. Er heißt nur, dass zwei Personen dieselben Zeilen änderten. Nichts geht verloren. Wählen Sie den richtigen Text oder führen Sie merge --abort aus, um vor den Merge zurückzukehren.
Weiterführend: den Konflikt wirklich lösen
Führen Sie in review den Merge noch einmal aus. Schreiben Sie die Datei so, dass statt der drei Markierungen und zwei Fassungen nur Ada L. Lovelace (Gastgeberin) steht. Führen Sie dann git -C review add visitors.txt aus.
Schließen Sie mit git -C review commit --no-edit ab und lesen Sie den Graph erneut. Ein einfaches commit würde einen Editor öffnen. Pushen Sie nichts.