Как правильно переименовать каталог в репозитории Git?

в репозитории Git, как правильно переименовать каталог? Я думаю, что он должен работать, чтобы скопировать каталог, который будет переименован в новый каталог с желаемым именем, и удалить старую папку и git add, git commit и push все. Но разве это лучший способ?

10 ответов


основное переименование (или перемещение):

git mv <old name> <new name>

С учетом регистра переименовать-например. от casesensitive to CaseSensitive-вы должны использовать два шага:

git mv casesensitive tmp
git mv tmp CaseSensitive

(подробнее о чувствительности к регистру в Git...)

...с последующим commit и push будет самым простым способом переименования каталога в репозитории git.


Если вы получаете эту ошибку: fatal: переименование 'foldername' не удалось: недопустимый аргумент

попробуйте это:

git mv foldername tempname && git mv tempname folderName


1. Изменить имя папки с oldfolder на newfolder

git mv oldfolder newfolder

2. Если newfolder уже находится в вашем репозитории, вы хотите переопределить его и использовать: - силу

git mv -f oldfolder newfolder

Не забудьте добавить изменения в индекс и зафиксировать их после переименования с помощью git mv.

3. Переименование имени папки в имя папки в файловых системах без учета регистра

простое переименование с нормальным mv команда (не git mv) не будет распознана как filechange от git. Если вы попробуете это с помощью команды "git mv", как в следующей строке

git mv foldername folderName

если вы используете файловую систему, нечувствительную к регистру, например, вы находитесь на Mac, и вы не настроили ее на регистр, вы испытаете сообщение об ошибке, подобное этому:

fatal: переименование 'foldername' не удалось: недопустимый аргумент

а вот что вы можете сделать, чтобы сделать его работа: -

git mv foldername tempname && git mv tempname folderName

Это разбивает процесс переименования путем переименования папки сначала на совершенно другое имя папки. После переименования в другое имя папки папку можно переименовать в новое имя папки. После этих "git mv", опять же, не забудьте добавить и зафиксировать изменения. Хотя это, вероятно, не красивая техника, она работает отлично. Файловая система по-прежнему не распознает изменение буквенных вариантов, но git делает это из-за переименования его в новое имя папки, и это все, что мы хотели :)


вы можете переименовать каталог, с помощью файловой системы. Тогда вы можете сделать git rm <old directory> и git add <new directory> (страница поможет). Тогда вы можете совершать и толкать.

Git обнаружит, что содержимое одинаковое и что это просто операция переименования, и оно будет отображаться как запись переименования в истории. Вы можете проверить, что это так перед фиксацией с помощью git status


из веб-приложения я думаю, что вы не можете, но вы можете переименовать все папки в клиенте Git, он переместит ваши файлы в новые переименованные папки, чем зафиксировать и нажать на удаленный репозиторий.

у меня была очень похожая проблема: Мне пришлось переименовать разные папки из верхнего регистра в нижний регистр (например, Abc - > abc), я переименовал все папки с фиктивным именем (например, " abc___"), а затем передал в удаленный репозиторий, после чего я переименовал все папки в исходный имя в нижнем регистре (например, abc), и он взял их!


FYI я продолжал получать "FAILED \ Access denied" при использовании параметров Tortoise или командной строки для переименования. Он работает только с параметром командной строки после того, как я закрыл окно Проводника.


On https://github.com в их интерфейсе репозитория:

перейдите в настройки --> имя репозитория -- > введите новое имя в области.


Я просто переименовал каталог, а затем добавил, зафиксировал и нажал на remote. Он отлично работает

mv в Git добавить new_dir git commit-m" " ГИТ пуш


git rm -rf --cached path/to/your/directories

затем повторно добавьте и зафиксируйте.


просто переименуйте папку. git - это "контент-трекер", поэтому хэши SHA1 одинаковы, и git знает, что вы переименовываете его. Единственное, что меняется-это дерево-объект.

rm <directory>
git add .
git commit