Я думаю, что это должно работать, чтобы скопировать каталог, который будет переименован в новый каталог с нужным именем, и удалить старый каталог , и git add
, git commit
и push
все. Но так ли это лучше?
Я думаю, что это должно работать, чтобы скопировать каталог, который будет переименован в новый каталог с нужным именем, и удалить старый каталог , и git add
, git commit
и push
все. Но так ли это лучше?
Ответы:
Основное переименование (или перемещение):
git mv <old name> <new name>
Переименование с учетом регистра, например от casesensitive
до CaseSensitive
- вы должны использовать два шага:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Подробнее о чувствительности к регистру в Git… )
… Сопровождаемый коммитом и push - самый простой способ переименовать каталог в git-репо.
casesensitive
в CaseSensitive
, вы можете сделать это следующим образом: git mv casesensitive Temp
а затем git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
добавить и зафиксировать
git config core.ignorecase false
и затем выполнить команды последовательно или иначе, для второй части я получил бы source is empty
ошибку.
Если вы получили эту ошибку: fatal: переименование 'foldername' не выполнено: неверный аргумент
Попробуй это:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
и git mv tempname folderName
, которые должны работать в Windows.
1. Измените имя папки со старой папки на новую
git mv oldfolder newfolder
2. Если новая папка уже есть в вашем хранилище и вы хотите переопределить ее и использовать: - force
git mv -f oldfolder newfolder
Не забудьте добавить изменения в индекс и зафиксировать их после переименования с помощью git mv.
3. Переименование foldername в folderName в нечувствительных к регистру файловых системах.
Простое переименование с помощью обычной команды mv (не git mv) не распознается как обмен файлами из git. Если вы попробуете это с помощью команды 'git mv', как показано в следующей строке
git mv foldername folderName
Если вы используете нечувствительную к регистру файловую систему, например, у вас Mac, и вы не настроили ее для учета регистра, вы увидите сообщение об ошибке, подобное следующему:
роковое: переименование «имя_фолдера» не удалось: неверный аргумент
И вот что вы можете сделать, чтобы заставить его работать: -
git mv foldername tempname && git mv tempname folderName
Это разделяет процесс переименования, сначала переименовывая папку в совершенно другое имя. После переименования в другое имя папки папка может быть наконец переименована в новое имя папки. После этих git mv, опять же, не забудьте добавить и зафиксировать изменения. Хотя это, вероятно, не красивая техника, она прекрасно работает. Файловая система по-прежнему не распознает изменения букв, но git делает это из-за переименования в новое имя, и это все, что мы хотели :)
Вы можете переименовать каталог, используя файловую систему. Тогда вы можете сделать git rm <old directory>
и git add <new directory>
( страница справки ). Тогда вы можете совершить и нажать.
Git обнаружит, что содержимое одинаково и что это просто операция переименования, и она появится как запись переименования в истории. Вы можете проверить, что это так, перед фиксацией, используяgit status
Из веб-приложения я думаю, что вы не можете, но вы можете переименовать все папки в Git Client, он переместит ваши файлы в новые переименованные папки, чем зафиксировать и отправить в удаленный репозиторий.
У меня была очень похожая проблема: мне приходилось переименовывать разные папки из прописных в строчные (например, Abc -> abc), я переименовал все папки с фиктивным именем (например, «abc___») и затем зафиксировал их в удаленном репозитории после что я переименовал все папки в исходное имя строчными буквами (например, abc), и он взял их!
Я решил это в два этапа. Чтобы переименовать папку с помощью команды mv, вам нужны права для этого, если у вас нет прав, вы можете выполнить следующие действия. Предположим, вы хотите переименовать регистрочувствительный в регистрозависимый.
Шаг 1: Переименуйте папку (с учетом регистра) во что-то еще из проводника. например, Переименовать с учетом регистра в folder1 зафиксировать это изменение.
Шаг 2: Переименуйте эту недавно названную папку (folder1) в ожидаемое регистрозависимое имя (Casesensitive), например. Переименуйте folder1 в Casesensitive. Передайте это изменение.
Для переименования с учетом регистра, git mv somefolder someFolder
работал для меня раньше, но не сегодня по какой-то причине. В качестве обходного пути я создал новую папку temp
, переместил все содержимое somefolder
в temp
, удалил somefolder
, зафиксировал temp
, затем создал someFolder
, переместил все содержимое temp
в someFolder
, удалил temp
, зафиксировал и отправил, someFolder
и это сработало! Появляется как someFolder
в Git.
Просто переименуйте папку. git - это «контент-трекер», поэтому хэши SHA1 такие же, и git знает, что вы его переименуете. Единственное, что меняется, это дерево-объект.
rm <directory>
git add .
git commit