Wie kann man in einem Git-Repository ein Verzeichnis richtig umbenennen?

Lesezeit: 6 Minuten

Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
qazwsx

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

  • Mögliches Duplikat: Wie man Git mitteilt, dass es dasselbe Verzeichnis ist, nur ein anderer Name

    – Christoph Peisert

    25. Juni 2012 um 5:35 Uhr

  • Für Git ist ein Kopieren und Löschen dasselbe wie ein Verschieben. Git zeichnet sowohl (Kopieren + Löschen) als auch (Verschieben) auf die gleiche Weise auf.

    – Dietrich Ep

    25. Juni 2012 um 6:02 Uhr

Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
CB Bailey

Einfaches Umbenennen (oder Verschieben):

git mv <old name> <new name>

Umbenennen mit Berücksichtigung der Groß-/Kleinschreibung – z. von casesensitive zu CaseSensitive– Sie müssen einen zweistufigen Schritt verwenden:

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.

  • Aber wenn Sie von umbenennen möchten casesensitive zu CaseSensitivekannst du so machen: git mv casesensitive Temp und dann git mv Temp CaseSensitive

    – ViliusK

    9. Februar 2014 um 21:03 Uhr


  • Speichert es alle Protokolle und Statistiken?

    – orezvani

    26. Mai 2014 um 2:13 Uhr

  • @ViliusK Wenn Sie mit Verzeichnissen mit Unterscheidung zwischen Groß- und Kleinschreibung arbeiten, ist dies eine einfache Möglichkeit, die ich gefunden habe git rm -rf --cached path/to/your/directories dann neu hinzufügen und committen

    – dtothefp

    20. November 2014 um 22:09 Uhr


  • Aber warum hat GIT keine richtige Unterstützung für die Namensänderung für ein Paket/Verzeichnis? Warum muss ich überhaupt einen separaten Ordner erstellen? Wenn ich einen Namen des Pakets ändere, sollte es das nicht als Unterschied nehmen und sich beim Commit & Push darum kümmern?

    – Ahmed

    23. Februar 2016 um 19:58 Uhr

  • Vielen Dank dafür. Für mich musste ich zuerst ausführen git config core.ignorecase false und dann die Befehle nacheinander ausführen oder sonst, für den zweiten Teil würde ich a bekommen source is empty Error.

    – Hossein

    18. Mai 2020 um 4:32 Uhr

1646629691 76 Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
Jacques Betancourt

Wenn Sie diesen Fehler erhalten: schwerwiegend: Umbenennen von „Ordnername“ fehlgeschlagen: Ungültiges Argument

Versuche dies:

*nixOS

git mv foldername tempname && git mv tempname folderName

WinOS

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

  • Das ist genau das, was ich brauchte, um eine Falländerung in einem Verzeichnis vorzunehmen.

    – cjserio

    2. April 2015 um 12:32 Uhr

  • Das Token ‘&&’ ist in dieser Version kein gültiges Anweisungstrennzeichen. git-Version 2.11.0.windows.

    – Tim Hardy

    26. Juni 2017 um 21:09 Uhr


  • @Tim Hardy es kann auch als zwei separate Befehle ausgeführt werden, git mv foldername tempname und git mv tempname folderNamedie unter Windows funktionieren sollte.

    – Larkeith

    28. Oktober 2018 um 2:57 Uhr

  • Das funktioniert nicht ! Das Endergebnis legt den neuen Ordner „folderName“ im Ordner „tempname“ ab

    – Wette

    29. März 2019 um 3:22 Uhr

1. Ändern Sie den Namen eines Ordners von oldfolder zu newfolder

git mv oldfolder newfolder

2. Wenn sich newfolder bereits in Ihrem Repository befindet und Sie es überschreiben und verwenden möchten: – Gewalt

git mv -f oldfolder newfolder

Vergessen Sie nicht, die Änderungen zu index hinzuzufügen und sie nach dem Umbenennen mit git mv zu übertragen.

3. Umbenennen von Ordnername in Ordnername auf Dateisystemen, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird

Einfaches Umbenennen mit einem normalen mv-Befehl (nicht git mv) wird nicht als Dateiänderung 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ß-/Kleinschreibung nicht beachtet wird, z. B. auf einem Mac, und Sie es nicht so konfiguriert haben, dass die Groß-/Kleinschreibung beachtet wird, wird eine Fehlermeldung wie diese 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 den anderen Ordnernamen kann der Ordner schließlich in den neuen Ordnernamen umbenannt werden. Vergessen Sie nach diesen ‘git mv’s wieder nicht, die Änderungen hinzuzufügen und zu übernehmen. Obwohl dies wahrscheinlich keine schöne Technik ist, funktioniert es perfekt. Das Dateisystem erkennt immer noch keine Änderung der Groß- und Kleinschreibung, aber Git tut es, weil es in einen neuen Ordnernamen umbenannt wird, und das ist alles, was wir wollten 🙂

1646629692 424 Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
Oleksi

Sie können das Verzeichnis mithilfe des Dateisystems umbenennen. Dann können Sie tun git rm <old directory> und git add <new directory> (Hilfeseite). Dann können Sie sich verpflichten und pushen.

Git erkennt, dass der Inhalt derselbe ist und dass es sich nur um eine Umbenennungsoperation handelt, und erscheint als Umbenennungseintrag im Verlauf. Ob dies der Fall ist, können Sie vor dem Commit mit überprüfen git status

1646629693 166 Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
Yinon

viele richtige Antworten, aber da landete ich hier bei Copy & Paste Ordner mit Verlauf umbenennenich habe das gefunden

git mv <old name> <new name>

wird die bewegen alter Ordner (selbst) innerhalb der zu verschachteln neuer Ordner

während

git mv <old name>/ <new name>

(beachten Sie die “https://stackoverflow.com/”) verschiebt die verschachtelter Inhalt von dem alter Ordner zum neuer Ordner

Beide Befehle kopierten nicht den Verlauf verschachtelter Dateien. ich schließlich jeden verschachtelten Ordner einzeln umbenannt

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

Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
SyncroIT

Von der Webanwendung aus können Sie das meiner Meinung nach nicht, aber Sie können alle Ordner im Git-Client umbenennen. Dadurch werden Ihre Dateien in die neuen umbenannten Ordner verschoben, dann übergeben und in das Remote-Repository übertragen.

Ich hatte ein sehr ähnliches Problem:
Ich musste verschiedene Ordner von Großbuchstaben in Kleinbuchstaben umbenennen (wie Abc -> abc), ich habe alle Ordner mit einem Dummy-Namen umbenannt (wie ‘abc___’) und dann an das Remote-Repository übergeben, danach habe ich alle Ordner umbenannt in den ursprünglichen Namen mit Kleinbuchstaben (wie abc) und es dauerte sie!

1646629695 756 Wie kann man in einem Git Repository ein Verzeichnis richtig umbenennen
Ryan Walker

Bei Umbenennung mit Berücksichtigung der Groß-/Kleinschreibung git mv somefolder someFolder hat bei mir schon früher funktioniert, heute aber aus irgendeinem Grund nicht. Als Workaround habe ich einen neuen Ordner erstellt tempverschoben den gesamten Inhalt von somefolder hinein tempgelöscht somefolderbegangen die tempdann erstellt someFolderverschoben den gesamten Inhalt von temp hinein someFoldergelöscht tempengagiert und vorangetrieben someFolder und es hat funktioniert! Erscheint als someFolder im Git.

  • Imo brauchen wir nicht wirklich einen temporären Ordner, erforderliche Schritte: 1. Benennen Sie somefolder in einen anderen Namen um (z. B. somefolder1) 2. Commit und Push-Änderungen 3. Benennen Sie somefolder1 in someFolder um 4. Commit und Push-Änderungen

    – tesjakow

    19. Januar um 12:19 Uhr

963030cookie-checkWie kann man in einem Git-Repository ein Verzeichnis richtig umbenennen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy