Daten ändern¶
Was passiert jetzt, wenn wir die Dateien wieder ändern? Also ändern wir mal eine unserer Testdateien…, z.B. indem wir eine zusätzliche Zeile hinzufügen:
$ cat testdatei.txt
Zeile 1
Zeile 2
Diese Zeile geändert, nach dem ersten Commit für diese und andere Datei!
Das ergibt jetzt den folgenden Status:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: testdatei.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git status -s
M testdatei.txt
Also: die Datei im Working Directory weicht vom Zusstand im Index ab! Beachten: hier M in Spalte 2 bei short Status.
Wir aktualisieren die Änderung - fügen also mit git add
die Datei wieder aktuell zum Index.
$ git add testdatei.txt
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: testdatei.txt
$ git status -s
M testdatei.txt
Analyse: die Datei liegt jetzt modified/geändert im Index und ist in dieser Variante für den nächsten Commit vorbereitet.
Jetzt ändern wir die Datei nochmals und schauen uns den Status der Datei in Git an.
$ cat testdatei.txt
Zeile 1
Zeile 2
Diese Zeile geändert, nach dem ersten Commit für diese und andere Datei!
Diese Zeile nach dem add-en der Datei, also dem Hinzufügen zum Index!
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: testdatei.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: testdatei.txt
$ git status -s
MM testdatei.txt
Drei Zustände für eine Datei!
Wenn man so will hat das Git jetzt drei Dateizustände einer
Datei testdatei.txt:
Lokale Datei im Git-Ordner - aktuellste (lokale) Bearbeitung: 4 Zeilen
Datei im Index (Staging Area) - nach letztem git add: 3 Zeilen
Datei im .git-Repository - nach letztem/ersten git commit: 2 Zeilen (siehe git show)
Wir analysieren das mal der Reihe nach mit ein paar Profi-Aufrufen - Plumbing Git Commands statt Porcelain Git Commands:
Lokale Datei - einfaches
cat$ cat testdatei.txt Zeile 1 Zeile 2 Diese Zeile geändert, nach dem ersten Commit für diese und andere Datei! Diese Zeile nach dem add-en der Datei, also dem Hinzufügen zum Index!
Datei im Index (Staging Area):
$ git ls-files --stage 100644 c3e447123530f753dbdf7141ed7034609e2fba46 0 testdatei.txt 100644 a33806c56de8e2635b91c78953286fdba2a6ad57 0 testdatei2.txt $ git cat-file -p c3e447123530f753dbdf7141ed7034609e2fba46 Zeile 1 Zeile 2 Diese Zeile geändert, nach dem ersten Commit für diese und andere Datei!
Datei im Git Repository: gerne mit einfachem (oder fein definiertem und dateibezogenen)
git show:$ git show commit 636908f2b795b68c4c99f978239be5e274bfea05 (HEAD -> master) Author: Joe Brandes <joe.trainer@example.com> Date: Thu Jul 11 14:04:11 2019 +0200 Initial commit; First Commit to .git diff --git a/testdatei.txt b/testdatei.txt new file mode 100644 index 0000000..2fddc57 --- /dev/null +++ b/testdatei.txt @@ -0,0 +1,3 @@ +Zeile 1 +Zeile 2 + diff --git a/testdatei2.txt b/testdatei2.txt new file mode 100644 index 0000000..a33806c --- /dev/null +++ b/testdatei2.txt @@ -0,0 +1 @@ +Text in Datei 2 $ git show HEAD:testdatei.txt Zeile 1 Zeile 2
Und wir können uns mit Git auch die Unterschiede
mittels git diff präsentieren lassen.
git diff- Abweichungen zwischen Workspace und Index (Staging Area)git diff --cached- Abweichungen zwischen Index (Staging Area) und Git Repogit diff HEAD- Abweichungen zwischen Workspace und Git Repo
Die unterschiedlichen Diff-Beispiele sollten wir uns genauer ansehen.