Das hatte ich gelesen, als Umbenennen von Dateien in Git Wenn Sie die Datei umbenannt haben, sollten Sie alle Änderungen festschreiben, die Datei umbenennen und dann die umbenannte Datei bereitstellen. Git erkennt die Datei anhand ihres Inhalts, anstatt sie als neue, nicht verfolgte Datei zu betrachten, und behält den Änderungsverlauf bei.
Als ich jedoch heute Abend genau das tat, kehrte ich zurück zu git mv
.
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
Ich habe mein Stylesheet umbenannt in Finder から iphone.css
a mobile.css
:
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: css/iphone.css
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# css/mobile.css
Git denkt nun, ich hätte eine CSS-Datei gelöscht und eine neue hinzugefügt. Das ist nicht das, was ich will. Machen wir die Umbenennung rückgängig und lassen Git die Arbeit machen.
> $ git reset HEAD .
Unstaged changes after reset:
M css/iphone.css
M index.html
Ich bin wieder da, wo ich angefangen habe:
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
Verwenden wir git mv
stattdessen:
> $ git mv css/iphone.css css/mobile.css
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: css/iphone.css -> css/mobile.css
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: index.html
#
Es sieht so aus, als wäre alles in Ordnung. Warum hat Git die Umbenennung nicht gleich beim ersten Mal erkannt, als ich den Finder benutzt habe?