Branches · Übung
Den Branch mit einem Commit verschieben
Dein aktueller Branch ist add-opening-hours, zeigt aber noch auf denselben Commit wie main. Jetzt erstellst du einen Commit und beobachtest, wie sich nur der aktuelle Branch bewegt.
Die Datei mit den Öffnungszeiten hinzufügen
Öffne mit nano eine neue Datei:
nano -w hours.txt
nano ist der Terminaleditor, den dieser Kurs durchgehend verwendet. Die Option -w verhindert, dass nano allein wegen eines schmalen Terminals feste Zeilenumbrüche einfügt.
Gib diese eine Zeile ein:
Opening hours: 9:00 to 17:00.
Speichere mit Ctrl-O, bestätige hours.txt mit Enter und verlasse nano mit Ctrl-X. Falls du die ausführliche nano-Anleitung brauchst: Die erste Lektion von Kapitel 2, Eine Datei im Terminal bearbeiten, erklärt alle Bedienelemente ausgehend von einem leeren Bildschirm.
Auf dem aktuellen Branch committen
Die nächsten drei Befehle verwenden denselben Ablauf aus Bearbeiten, Bereitstellen und Committen, den du in Kapitel 2 gelernt hast. Mit git status prüfst du die nicht verfolgte Datei. git add hours.txt legt ihren aktuellen Inhalt in der Staging-Area ab, und git commit -m zeichnet die bereitgestellte Momentaufnahme mit der Nachricht in Anführungszeichen auf.
git status
git add hours.txt
git commit -m "Add opening hours"
Git erstellt den neuen Commit nach Clarify the guide title. Weil HEAD dem Branch add-opening-hours folgt, wandert dessen Zeiger auf den neuen Commit. main und clearer-title bewegen sich nicht.
Add opening hours <- add-opening-hours (HEAD)
|
Clarify the guide title <- main, clearer-title
|
Start the neighborhood guide
Das Ergebnis lesen
Führe die beiden einfachsten Lesebefehle aus:
git log
git branch
git log liest vom aktuellen Branch rückwärts. Deshalb ist Add opening hours der neueste Eintrag, und die beiden vorbereiteten Commits folgen darunter. Ein einfaches git branch markiert add-opening-hours weiterhin mit *.
Ein einfaches git log zeigt die anderen Branch-Namen nicht neben den einzelnen Commits an. Diese Lektion fügt auch keine Option für eine kompakte Darstellung hinzu, um sie sichtbar zu machen. Das entscheidende Modell reicht bereits: Ein Commit schiebt den Branch vor, dem HEAD folgt. Die anderen Branch-Zeiger bleiben, wo sie waren.
Worauf zeigt main, nachdem du auf add-opening-hours committet hast?
Diese Regel macht Branches nützlich, und sie verdient eine klare Formulierung: Ein Commit verschiebt den Branch, auf dem du stehst, und lässt jeden anderen Branch genau dort, wo er war. Deine Arbeit an den Öffnungszeiten existiert, und main weiß noch nichts davon.
Das wirft eine berechtigte Frage auf: Wenn main keine hours.txt enthält, was passiert mit der Datei auf dem Datenträger, wenn du zu main zurückkehrst?