Link Search Menu Expand Document

Übung - Staging

Es geht um den Stage-Bereich (auch Index genannt). Jede Änderung (bearbeitete, neue oder gelöschte Dateien) wird muss als “Snapshot” im Stage-Bereich registriert werden (z.B. mit git add), bevor Sie in ein Commit übernommen werden kann.

Tipps

  • git add <datei/verzeichnis> überträgt den aktuellen Stand einer Datei in den Stage-Bereich.
  • Ändert man eine Datei nach dem add, hat sie im Workspace einen anderen Stand als in der Stage.
  • git status, git diff und git diff --staged zeigen dies.
  • git restore --staged <file> nimmt ein Staging zurück.
  • git restore <file> stellt eine Datei im Workspace wieder her. Achtung: Die lokale Änderungen werden dabei überschreiben!
  • mit -s <revision> können auch beliebige andere Stände von Dateien und Verzeichnisse geholt werden.
  • git stash -u entfernt alle Änderungen (und unversioniert Dateien) aus dem Workspace (und sichert diese im Stash).

Setup

Im Verzeichnis repo wartet ein Git-Projekt darauf, bearbeitet zu werden.

$ cd repo


Schritt 1 - Staging

Starte im Verzeichnis git-uebungen/aufgaben/commits-staging/repo.

Ersetze in der Datei demo, Fit durch Git. Füge sie dann zum Stage-Bereich hinzu. Ersetze dann doof durch toll. Lasse dir den Status und die Diffs für Workspace und Stage zeigen.

Schritt 2 - Restore - Staging zurücknehmen

Starte im Verzeichnis git-uebungen/aufgaben/commits-staging/repo.

Die letzte Änderung soll doch noch nicht in das nächste Commit übernommen werden, nehme sie zurück.

Schritt 3 - Restore - Änderung ganz zurücknehmen

Starte im Verzeichnis git-uebungen/aufgaben/commits-staging/repo.

Die Änderungen an demo sollen ganz zurückgenommen werden. Lasse Dir nachher Status und Diffs anzeigen.

Schritt 4 - ⭐ Restore - Älteren Inhalt einer Datei zurückholen

Starte im Verzeichnis git-uebungen/aufgaben/commits-staging/repo.

Die Datei beispiel wurde dreimal bearbeitet. Hole den mittleren Stand zurück und erstelle ein Commit.

Schritt 5 - ⭐ Restore - Zurückholen älterer Verzeichnisversionen

Starte im Verzeichnis git-uebungen/aufgaben/commits-staging/repo.

Im Folder ufer wurde ein Spiel gespielt. Stelle die Spielstände nach, indem Du restore auf das ufer-Verzeichnis anwendest.

Tipp: ll ufer/* zeigt die Verzeichnisse des Spiels.

Tipp: Beim restore werden unversionierte Dateien nicht abgeräumt. Man kann sie mit dem stash-Befehl abräumen.

repo $ cd ..


Zur Lösung

Zum Überblick