Lösung zu Schritt 1 - Branches zeigen
Zeige an, welche Branches es gibt. Zeige jetzt den Commit-Graphen über alle Branches an.
repo $ git branch -vv
feature-a f0b1e69 Edited file bar on branch feature-a by bjoern.
* main 68be303 Created file und-tschuess on branch main by bjoern.
some-old-branch a5fc3f7 : Edit file bar at line 1 on branch main by bjoern.
Im Commit-Graphen sieht man, wo die Branches und Tag stehen:
repo $ git log --decorate --oneline --graph --all
* f0b1e69 (feature-a) Edited file bar on branch feature-a by bjoern.
| * 68be303 (HEAD -> main) Created file und-tschuess on branch main by bjoern.
| * 6a70b5c (tag: release1.1) : Edit file bar at line 5 on branch main by bjoern.
| * a5fc3f7 (some-old-branch) : Edit file bar at line 1 on branch main by bjoern.
|/
* 272dd25 Edited file hallo-welt on branch main by bjoern.
* f7824a5 (tag: release1.0) Eine Zeile verschieben
* 0be4bbe Noch ein paar neue Zeilen
* 480a5cf Verschiebe eine Zeile
* 5c0c9ae Created file restaurant on branch main by bjoern.
* aa145b9 Kopiere eine Zeile aus 'bar'
* 9e96dc7 Ergänze eine Zeile
* 96ef7f4 Benenne die Datei im
* faf8ba9 Ergänze zwei zeilen
* 5498956 Beginne mit leerer Datei
* e51b518 Created file bar on branch main by bjoern.
* 7b2a390 Created file hallo-welt on branch main by bjoern.
Lösung zu Schritt 2 - Branch wechseln
Wechsle auf den Branch feature-a
. Sieh Dir den Inhalt der Datei bar
im Verzeichnis foo
an. Wechsle zurück auf main
.
repo $ git switch feature-a
Switched to branch 'feature-a'
repo $ cat foo/bar
Jawoll, das ist hier feature-a!
repo $ git switch main
Switched to branch 'main'
Lösung zu Schritt 3 - Tags zeigen
Zeige alle Tags an.
repo $ git tag
release1.0
release1.1
Lösung zu Schritt 4 - ⭐ Inhalte vergangener Versionen untersuchen
Lasse dir anzeigen, welche Dateien es im Workspace gibt. Lasse Dir anzeigen welche Dateien es in vorigen Commit gab.
Wechsle zum vorigen Commit, und untersuche, wie der Workspace dannn aussieht.
Wechsle dann wieder auf main
zurück.
Diese Dateien gibt es auf main
:
repo $ ll
total 16K
drwxr-xr-x 2 vscode vscode 4.0K foo
-rw-r--r-- 1 vscode vscode 12 hallo-welt
-rw-r--r-- 1 vscode vscode 375 nachher
-rw-r--r-- 1 vscode vscode 0 restaurant
-rw-r--r-- 1 vscode vscode 181 und-tschuess
Diese Dateien gab es in HEAD~1
:
repo $ git ls-tree HEAD~1
040000 tree c9e9241c3edae05c6f1c858a2170c45052dac10e foo
100644 blob c57eff55ebc0c54973903af5f72bac72762cf4f4 hallo-welt
100644 blob 32b08868b00465cca451251689dda4c9d83b2d85 nachher
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 restaurant
Und jetzt holen wir genau diese Version in den Workspace:
repo $ git switch --detach HEAD~1
HEAD is now at 6a70b5c : Edit file bar at line 5 on branch main by bjoern.
repo $ ll
total 12K
drwxr-xr-x 2 vscode vscode 4.0K foo
-rw-r--r-- 1 vscode vscode 12 hallo-welt
-rw-r--r-- 1 vscode vscode 375 nachher
-rw-r--r-- 1 vscode vscode 0 restaurant
repo $ git switch main
Previous HEAD position was 6a70b5c : Edit file bar at line 5 on branch main by bjoern.
Switched to branch 'main'
Lösung zu Schritt 5 - ⭐ Hole alten Stand einer einzelnen Datei zurück.
Die Datei hallo-welt
wurde nach dem release1.0
bearbeitet. Dem Kunden gefällt das nicht. Stelle den alten Zustand mit einem neuen Commit wieder her.
In release1.0
sah es os aus:
repo $ git show release1.0:hallo-welt
Hallo Welt!
Jetzt sieh es so aus:
repo $ git show HEAD:hallo-welt
Hello World!
Gezieltes zurückholen:
repo $ git restore -s release1.0 hallo-welt
repo $ git commit -am 'Zurückgeholt'
[main 7566f2c] Zurückgeholt
1 file changed, 1 insertion(+), 1 deletion(-)
Im Commit-Graphen sieht man, wo die Branches und Tag stehen:
Jetzt sieh es so wieder so aus:
repo $ git show HEAD:hallo-welt
Hallo Welt!