1069 Stimmen

Wie benennt man in einem Git-Repository ein Verzeichnis richtig um?

Ich denke, es sollte funktionieren, das umzubenennende Verzeichnis in ein neues Verzeichnis mit dem gewünschten Namen zu kopieren, und das alte Verzeichnis löschen und git add , git commit y push alles. Aber ist das der beste Weg?

2011voto

CB Bailey Punkte 693084

Einfaches Umbenennen (oder Verschieben):

git mv <old name> <new name>

Groß- und Kleinschreibung beachten - z. B. von casesensitive a CaseSensitive -Sie müssen einen Zweischritt verwenden:

git mv casesensitive tmp
git mv tmp CaseSensitive

( Mehr über Groß- und Kleinschreibung in Git )

gefolgt von commit und push wäre der einfachste Weg, ein Verzeichnis in einem Git Repo umzubenennen.

201voto

Jacques Betancourt Punkte 2264

Wenn Sie diese Fehlermeldung erhalten: fatal: renaming 'foldername' failed: Ungültiges Argument

Versuchen Sie dies:

*nixOS

git mv foldername tempname && git mv tempname folderName

WinOS

git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName

100voto

akshay_rahar Punkte 1561

1. Ändern des Namens eines Ordners von oldfolder in newfolder

git mv oldfolder newfolder

2. Wenn newfolder bereits in Ihrem Repository vorhanden ist und Sie es außer Kraft setzen und verwenden möchten:- Kraft

git mv -f oldfolder newfolder

Vergessen Sie nicht, die Änderungen in den Index aufzunehmen und sie nach der Umbenennung mit git mv zu übertragen.

3. Umbenennung von Ordnername in Ordnername bei Dateisystemen, die Groß- und Kleinschreibung nicht berücksichtigen

Einfaches Umbenennen mit einem normalen mv-Befehl (nicht git mv) wird von git nicht als Dateiwechsel erkannt. Versuchen Sie es mit dem Befehl "git mv" wie in der folgenden Zeile

git mv foldername folderName

Wenn Sie ein Dateisystem verwenden, bei dem die Groß- und Kleinschreibung nicht beachtet wird, z. B. auf einem Mac, und Sie es nicht so konfiguriert haben, dass es die Groß- und Kleinschreibung beachtet, erhalten Sie eine Fehlermeldung wie diese:

fatal: Umbenennung 'foldername' fehlgeschlagen: Ungültiges Argument

Und hier ist, was Sie tun können, damit es funktioniert:-

git mv foldername tempname && git mv tempname folderName

Dadurch wird der Umbenennungsprozess aufgeteilt, indem der Ordner zunächst in einen völlig anderen Ordnernamen umbenannt wird. Nach der Umbenennung in den anderen Ordnernamen kann der Ordner schließlich in den neuen Ordnernamen umbenannt werden. Vergessen Sie nach diesen 'git mv's wiederum nicht, die Änderungen hinzuzufügen und zu übertragen. Auch wenn dies wahrscheinlich keine schöne Technik ist, funktioniert sie perfekt. Das Dateisystem erkennt zwar immer noch nicht die Änderung der Groß- und Kleinschreibung, aber Git erkennt sie aufgrund der Umbenennung in einen neuen Ordnernamen, und das ist alles, was wir wollten :)

26voto

Yinon Punkte 557

Viele richtige Antworten, aber da ich hier gelandet bin, um eine Ordner umbenennen mit Verlauf habe ich festgestellt, dass diese

git mv <old name> <new name>

verschiebt die alter Ordner (selbst) zu verschachteln in der neuer Ordner

während

git mv <old name>/ <new name>

(beachten Sie das '/') verschiebt die verschachtelter Inhalt von der alter Ordner zum neuer Ordner

beide Befehle kopierten den Verlauf der verschachtelten Dateien nicht mit. I eventuell jeden verschachtelten Ordner einzeln umbenannt

git mv <old name>/<nest-folder> <new name>/<nest-folder>

18voto

Oleksi Punkte 12877

Sie können das Verzeichnis über das Dateisystem umbenennen. Dann können Sie git rm <old directory> y git add <new directory> ( Hilfe-Seite ). Dann können Sie die Daten übertragen und pushen.

Git erkennt, dass der Inhalt derselbe ist und dass es sich nur um einen Umbenennungsvorgang handelt, und es erscheint als Umbenennungseintrag in der Historie. Sie können dies vor der Übergabe überprüfen, indem Sie git status

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X