Ich denke , es sollte das Verzeichnis kopieren arbeitet mit dem gewünschten Namen in ein neues Verzeichnis umbenannt werden, und löschen Sie das alte Verzeichnis , und git add
, git commit
und push
alles. Aber ist das der beste Weg?
Ich denke , es sollte das Verzeichnis kopieren arbeitet mit dem gewünschten Namen in ein neues Verzeichnis umbenannt werden, und löschen Sie das alte Verzeichnis , und git add
, git commit
und push
alles. Aber ist das der beste Weg?
Antworten:
Grundlegendes Umbenennen (oder Verschieben):
git mv <old name> <new name>
Groß- und Kleinschreibung beachten, z. von casesensitive
bis CaseSensitive
- Sie müssen zwei Schritte ausführen:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Mehr zur Groß- und Kleinschreibung in Git… )
… Gefolgt von Commit und Push wäre der einfachste Weg, ein Verzeichnis in einem Git-Repo umzubenennen.
casesensitive
zu CaseSensitive
, können Sie auf diese Weise tun: git mv casesensitive Temp
und dann git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
erneut hinzuzufügen und
git config core.ignorecase false
die Befehle ausführen und dann nacheinander ausführen, sonst würde ich für den zweiten Teil eine source is empty
Fehlermeldung erhalten.
Wenn Sie diesen Fehler erhalten: fatal: Umbenennen von 'Ordnername' fehlgeschlagen: Ungültiges Argument
Versuche dies:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
und git mv tempname folderName
, die unter Windows funktionieren sollten.
1. Ändern Sie den Namen eines Ordners von altem Ordner in neuen Ordner
git mv oldfolder newfolder
2. Wenn sich der neue Ordner bereits in Ihrem Repository befindet und Sie ihn überschreiben und Folgendes verwenden möchten: - force
git mv -f oldfolder newfolder
Vergessen Sie nicht, die Änderungen zum Index hinzuzufügen und nach dem Umbenennen mit git mv festzuschreiben.
3. Umbenennen des Ordnernamens in Ordnername in Dateisystemen ohne Berücksichtigung der Groß- und Kleinschreibung
Das einfache Umbenennen mit einem normalen mv-Befehl (nicht git mv) wird nicht als Dateiaustausch von git erkannt. Wenn Sie es mit dem Befehl 'git mv' wie in der folgenden Zeile versuchen
git mv foldername folderName
Wenn Sie ein Dateisystem verwenden, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, z. B. wenn Sie einen Mac verwenden und es nicht so konfiguriert haben, dass zwischen Groß- und Kleinschreibung unterschieden wird, wird eine Fehlermeldung wie die folgende angezeigt:
fatal: Umbenennen von 'Ordnername' 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 dem Umbenennen in einen anderen Ordnernamen kann der Ordner schließlich in den neuen Ordnernamen umbenannt werden. Vergessen Sie nach diesen Git-MVs nicht, die Änderungen hinzuzufügen und festzuschreiben. Obwohl dies wahrscheinlich keine schöne Technik ist, funktioniert sie einwandfrei. Das Dateisystem erkennt immer noch keine Änderung der Groß- und Kleinschreibung, aber Git tut dies, weil es in einen neuen Ordnernamen umbenannt wurde, und das ist alles, was wir wollten :)
Sie können das Verzeichnis über das Dateisystem umbenennen. Dann können Sie git rm <old directory>
und git add <new directory>
( Hilfeseite ). Dann können Sie festlegen und pushen.
Git erkennt, dass der Inhalt identisch ist und dass es sich nur um einen Umbenennungsvorgang handelt, und er wird als Umbenennungseintrag im Verlauf angezeigt. Sie können vor dem Festschreiben überprüfen, ob dies der Fall istgit status
Ich denke, Sie können dies nicht über die Webanwendung tun, aber Sie können alle Ordner in Git Client umbenennen. Dadurch werden Ihre Dateien in die neu umbenannten Ordner verschoben und anschließend festgeschrieben und in das Remote-Repository verschoben.
Ich hatte ein sehr ähnliches Problem: Ich musste verschiedene Ordner von Groß- in Kleinbuchstaben umbenennen (wie Abc -> abc), ich habe alle Ordner mit einem Dummy-Namen umbenannt (wie 'abc___') und danach in das Remote-Repository übernommen dass ich alle Ordner in den ursprünglichen Namen mit Kleinbuchstaben (wie abc) umbenannt habe und es sie genommen hat!
Ich habe es in zwei Schritten gelöst. Um den Ordner mit dem Befehl mv umzubenennen, benötigen Sie entsprechende Rechte. Wenn Sie kein Recht haben, können Sie diese Schritte ausführen. Angenommen, Sie möchten caseensitive in Casesensitive umbenennen.
Schritt 1: Benennen Sie den Ordner (Groß- und Kleinschreibung beachten) in einen anderen Ordner aus dem Explorer um. z. B. Groß- und Kleinschreibung in Ordner1 umbenennen, um diese Änderung zu übernehmen.
Schritt 2: Benennen Sie diesen neu benannten Ordner (Ordner1) in den erwarteten Namen mit Groß- und Kleinschreibung um (Groß- und Kleinschreibung beachten), z. Benennen Sie Ordner1 in Groß- / Kleinschreibung um. Übernehmen Sie diese Änderung.
Für das Umbenennen mit Groß- und Kleinschreibung git mv somefolder someFolder
hat es schon früher für mich funktioniert, aber heute aus irgendeinem Grund nicht. Um dieses Problem zu umgehen habe ich einen neuen Ordner temp
, bewegt den gesamten Inhalt somefolder
in temp
, gelöscht somefolder
, verpflichtet , die temp
dann erstellt someFolder
, bewegt alle den Inhalt temp
in someFolder
, gelöscht temp
, engagiert und schob someFolder
und es funktionierte! Erscheint wie someFolder
in Git.
Benennen Sie den Ordner einfach um. git ist ein "Content-Tracker", daher sind die SHA1-Hashes identisch und git weiß, dass Sie ihn umbenennen. Das einzige, was sich ändert, ist das Baumobjekt.
rm <directory>
git add .
git commit