Copy/mv в другой каталог в git
У меня есть
dir1/содержит много файлов и подкаталогов, я хочу изменить имя каталога на dir2/. Я попробовал
git mv dir1/dir2/
Я получил это сообщение:
fatal: renaming 'dir1' failed: Permission denied
обновление:
Я побежал из git для командной строки Windows http://code.google.com/p/msysgit/
Какая правильная команда?
Ответы
Ответ 1
Вы можете просто использовать стандартные инструменты unix или любую вашу ОС. Итак:
mv dir1 dir2
должен работать. Просто убедитесь, что вы добавили оба dir1 и dir2 в промежуточную область после того, как вы это сделали, чтобы вы зафиксировали изменения.
Пример того, как зафиксировать изменение (после выполнения), может быть:
git add dir1 dir2 && git commit dir1 dir2
Возможно, есть и другие способы сделать это.
Ответ 2
Также может быть, что каталог (или файл внутри) используется другой программой, что мешает вам делать что-либо с этой папкой. Только в Windows, очевидно.
Используйте Process Explorer, если вы не знаете, какая программа захватила этот каталог/файл.
Ответ 3
Как исходный, так и целевой каталог необходимо проверить в репозитории git. Если вы перемещаете dir1 в dir2, а dir2 еще не зафиксирован, вы получите это сообщение об ошибке.
Ответ 4
Я запускаю git в cygwin. У меня была такая же проблема, пока я не удалял ненужные файлы из каталога, который нужно переименовать. Это позволило выполнить git mv
правильно.
Если вы видите ненужные файлы в своем каталоге, которые будут переименованы при запуске git status
, вам придется временно переместить эти файлы где-нибудь еще и вернуть их после git mv
.
Ответ 5
У меня была та же проблема. TGitCache.exe был процессом, который препятствовал переименованию папки. Используя TaksExplorer, я убил процесс и запустил команду из командной строки Git Bash.