lief ich die folgenden Befehle ein und bekam verwirrt über die Ausgabe von git diff HEAH
sowie git diff
„Wrong“ Ausgabe von git diff HEAD und git diff
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo
$ git init
Initialized empty Git repository in C:/Users/Athrun/Desktop/path/to/my/workspace /demo/.git/
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo (master)
$ echo "Hello World" > welcome.txt
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo (master)
$ git add welcome.txt
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo (master)
$ git commit -m "\"Hello World\" committed"
[master (root-commit) eb00b00] "Hello World" committed
1 file changed, 1 insertion(+)
create mode 100644 welcome.txt
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo (master)
$ git rm --cached welcome.txt
rm 'welcome.txt'
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo (master)
$ git diff HEAD
diff --git a/welcome.txt b/welcome.txt
deleted file mode 100644
index 557db03..0000000
--- a/welcome.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello World
[email protected] MINGW64 ~/Desktop/path/to/my/workspace/demo (master)
$ git diff
Grundsätzlich initialisiert ich ein Repo, eine Datei mit Zeichenfolge erstellt "Hello World" und die Datei übergeben. Dann habe ich den Befehl git rm --cached welcome.txt
ausgeführt, um die "Datei" (nicht sicher, ob ich sie hier "Datei" nennen kann) im Staging-Bereich zu löschen. Dann habe ich zwei Befehle git diff HEAD
und git diff
ausgeführt, um Änderungen an HEAD und Staging-Bereich zu vergleichen.
Was ich hier verstehe ist, dass Arbeitsverzeichnis und HEAD die gleiche Version der Datei haben, `git diff HEAD 'sollte nichts zeigen, während' git diff 'sollte" Hello World "entfernt werden.
Allerdings ist der Ausgang genau entgegengesetzt.
@PetSerAI danke für deine antwort, ich habe nicht realisiert, dass git rm --cached die datei entschlüsselt. Das hilft sehr. – user1888955