git mv
Verschiebt oder benennt eine Datei um
Der Befehl 'git mv' benennt eine verfolgte Datei um oder verschiebt sie und merkt die Änderung in einem Schritt vor. Das entspricht dem Umbenennen von Hand plus git add auf den alten und neuen Namen. Git speichert keine Umbenennungen: es erkennt sie durch Inhaltsvergleich, daher kann git log --follow die Historie der Datei über die Umbenennung hinweg zeigen.
Syntax
git mv [-v] [-f] [-n] [-k] <source> <destination>Beispiele
Eine Datei umbenennen
git mv app.js cart.jsBenennt die Datei um und merkt die Umbenennung vor.
In einen Ordner verschieben
git mv cart.js src/cart.jsVerschiebt die Datei in einen vorhandenen Ordner.
Historie nach einer Umbenennung
git log --follow cart.jsFolgt der Historie zurück über die Umbenennung.
Workflow-Beispiele
git mv app.js cart.jsUmbenennen und vormerken
git statusZeigt "renamed: app.js -> cart.js"
git commit -m "Rename app.js to cart.js"Commit
Fehlerbehebung
fatal: destination exists
Ursache: Eine Datei mit dem neuen Namen existiert bereits
Wähle einen anderen Namen oder überschreibe sie mit -f
fatal: not under version control
Ursache: Die Quelldatei ist unverfolgt
Benenne sie normal um, oder führe zuerst git add aus
Tipps & Stolperfallen
Best Practices
- ✓Committe eine Umbenennung getrennt von großen Änderungen, damit Git sie als Umbenennung erkennt.
- ✓Nutze git log --follow <file>, um die Historie über Umbenennungen hinweg zu sehen.
Häufige Fehler
- ✗Im Dateimanager umbenennen und nur die neue Datei committen — die alte wird weiter verfolgt.
- ✗Unter Windows oder macOS nur die Groß-/Kleinschreibung ohne git mv ändern, was Git eventuell nicht bemerkt.
- ✗Eine Datei im selben Commit umbenennen und stark bearbeiten, sodass Git die Umbenennung nicht mehr erkennt.
FAQ
Nicht direkt: es vergleicht den Inhalt zwischen Commits und erkennt die Umbenennung.
Ja: git mv src lib benennt den Ordner und jede Datei darin um.