Solution to Step 0 - START
Solution to Step 1 - Staging
In the file demo
, replace Fit
with Git
. Then add it to the stage area. Then replace doof
with toll
. Show the status and diffs for the workspace and stage.
Replace Fit
with Git
.
repo $ # Edit file demo
repo $ git add demo
Replace doof
with toll
.
repo $ # Edit file demo
repo $ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: demo
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: demo
The file demo
is listed in both Changes to be committed:
and Changes not staged for commit
.
repo $ git diff
diff --git a/demo b/demo
index 94cc8b3..70971ae 100644
--- a/demo
+++ b/demo
@@ -1,3 +1,3 @@
Git
ist
-doof.
+toll.
You can see that the stage area has a different diff than the workspace.
repo $ git diff --staged
diff --git a/demo b/demo
index af77d0b..94cc8b3 100644
--- a/demo
+++ b/demo
@@ -1,3 +1,3 @@
-Fit
+Git
ist
doof.
Solution to Step 2 - Restore - Staging zurücknehmen
The last change should not be included in the next commit yet, so undo it.
repo $ git restore --staged demo
repo $ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: demo
no changes added to commit (use "git add" and/or "git commit -a")
repo $ git diff
diff --git a/demo b/demo
index af77d0b..70971ae 100644
--- a/demo
+++ b/demo
@@ -1,3 +1,3 @@
-Fit
+Git
ist
-doof.
+toll.
After undoing, the stage area is empty again.
repo $ git diff --staged
Solution to Step 3 - Restore - Änderung ganz zurücknehmen
The changes to demo
should be completely undone. Show the status and diffs afterwards.
repo $ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: demo
no changes added to commit (use "git add" and/or "git commit -a")
repo $ git restore demo
repo $ git status
On branch main
nothing to commit, working tree clean
repo $ git diff
repo $ git diff --staged
Now the changes are completely gone.
Solution to Step 4 - ⭐ Restore - Älteren Inhalt einer Datei zurückholen
The file beispiel
was edited three times. Restore the middle state and create a commit.
repo $ git log --oneline beispiel
2e48c2f sp?ter
4222f43 dazwischen
dfe79fa dazwischen
repo $ git restore -s HEAD~9 beispiel
repo $ git diff
diff --git a/beispiel b/beispiel
index c571ad6..ab1b57f 100644
--- a/beispiel
+++ b/beispiel
@@ -1 +1 @@
-Und so endete es.
\ No newline at end of file
+Dann kam das mit dem Mittelteil.
\ No newline at end of file
repo $ git commit -am "Mittlerer Stand wiederhergestellt."
[main 27abb5e] Mittlerer Stand wiederhergestellt.
1 file changed, 1 insertion(+), 1 deletion(-)
Solution to Step 5 - ⭐ Restore - Zurückholen älterer Verzeichnisversionen
A game was played in the ufer
folder. Recreate the game states by applying restore
to the ufer
directory.
Tip: ll ufer/*
shows the directories of the game.
Tip: When using restore
, untracked files are not removed. You can remove them with the stash
command.
repo $ git log --oneline -- ufer/
40f54a9 Zug 7
a9882a6 Zug 6
954d812 Zug 5
77f4917 Zug 4
e1ee973 Zug 3
3fe29e6 Zug 2
6d31336 Zug 1
cf716f5 Starte spiel
Move 1
repo $ git stash -u
No local changes to save
repo $ git restore -s HEAD~7 ufer
repo $ ll ufer/*
ufer/ost:
total 8.0K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 ZIEGE
ufer/west:
total 8.0K
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 WOLF
Move 2
repo $ git stash -u
Saved working directory and index state WIP on main: 27abb5e Mittlerer Stand wiederhergestellt.
repo $ git restore -s HEAD~6 ufer
repo $ ll ufer/*
ufer/ost:
total 4.0K
-rw-r--r-- 1 vscode vscode 181 ZIEGE
ufer/west:
total 12K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 WOLF
Move 3
repo $ git stash -u
Saved working directory and index state WIP on main: 27abb5e Mittlerer Stand wiederhergestellt.
repo $ git restore -s HEAD~5 ufer
repo $ ll ufer/*
ufer/ost:
total 12K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 WOLF
-rw-r--r-- 1 vscode vscode 181 ZIEGE
ufer/west:
total 4.0K
-rw-r--r-- 1 vscode vscode 181 KOHL
Move 4
repo $ git stash -u
Saved working directory and index state WIP on main: 27abb5e Mittlerer Stand wiederhergestellt.
repo $ git restore -s HEAD~4 ufer
repo $ ll ufer/*
ufer/ost:
total 4.0K
-rw-r--r-- 1 vscode vscode 181 WOLF
ufer/west:
total 12K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 ZIEGE
Move 5
repo $ git stash -u
Saved working directory and index state WIP on main: 27abb5e Mittlerer Stand wiederhergestellt.
repo $ git restore -s HEAD~3 ufer
repo $ ll ufer/*
ufer/ost:
total 12K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 WOLF
ufer/west:
total 4.0K
-rw-r--r-- 1 vscode vscode 181 ZIEGE
Move 6
repo $ git stash -u
Saved working directory and index state WIP on main: 27abb5e Mittlerer Stand wiederhergestellt.
repo $ git restore -s HEAD~2 ufer
repo $ ll ufer/*
ufer/ost:
total 8.0K
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 WOLF
ufer/west:
total 8.0K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 ZIEGE
Move 7
repo $ git stash -u
Saved working directory and index state WIP on main: 27abb5e Mittlerer Stand wiederhergestellt.
repo $ git restore -s HEAD~1 ufer
repo $ ll ufer/*
total 16K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 WOLF
-rw-r--r-- 1 vscode vscode 181 ZIEGE
Move 8
repo $ git stash -u
No local changes to save
repo $ git restore -s HEAD~0 ufer
repo $ ll ufer/*
total 16K
-rw-r--r-- 1 vscode vscode 181 BAUER
-rw-r--r-- 1 vscode vscode 181 KOHL
-rw-r--r-- 1 vscode vscode 181 WOLF
-rw-r--r-- 1 vscode vscode 181 ZIEGE