Подтвердить что ты не робот

Copy/mv в другой каталог в git

У меня есть

dir1/содержит много файлов и подкаталогов, я хочу изменить имя каталога на dir2/. Я попробовал

git mv dir1/dir2/

Я получил это сообщение:

fatal: renaming 'dir1' failed: Permission denied

обновление:

Я побежал из git для командной строки Windows http://code.google.com/p/msysgit/
Какая правильная команда?

4b9b3361

Ответ 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.