Я использую GIT на компьютере с Windows 7 (64-битной) и изучаю, как использовать GIT для контроля версий моих файлов.

Теперь я хочу иметь возможность создать репозиторий --bare на внешнем устройстве (в данном случае флешку на 16 Гб ), но, к сожалению, когда я пытаюсь создать репозиторий --bare на нем, я получаю следующую ошибку:

f:/: Permission denied

Я использую программу GIT Bash, которая устанавливается с GIT на компьютерах с Windows, поэтому я ввожу эти команды (я также открываю программу как администратор, удерживая Ctrl + Shift при ее открытии)

cd /f
git init --bare
f:/: Permission denied

Однако, если я создаю нормальный репозиторий, он работает просто отлично:

cd /f
git init
Initialized empty repository in f:/.git/

Кто- нибудь может пролить свет на то, почему я не могу создать репозиторий --bare ?

Любая помощь приветствуется.

1 ответ1

2

Системы UNIX, когда вы пытаетесь создать каталог, который уже существует, возвращает ошибку "каталог уже существует". Windows вернет ошибку "Отказано в разрешении", если вы не смогли создать каталог, если он не существует, даже если он на самом деле уже существует. Это создает проблемы для многих программистов, когда они переносят код UNIX в Windows.

Когда вы пытаетесь создать пустой репозиторий как f:\ , первое, что делает git , создает каталог для его хранения. Ожидается, что если каталог уже существует, он получит ошибку "каталог уже существует". Однако, f:\ - это диск для Windows. Windows интерпретирует это как программу, пытающуюся создать диск , и запрещает git делать это. Поскольку git не понимает эту причуду Windows, он думает, что у него нет прав доступа к каталогу.

Решение состоит в том, чтобы создать хранилище в подкаталоге.

(И тем, кто пишет / поддерживает git: Попытка создать каталог, чтобы убедиться, что он существует, а затем прерывание, если вы получаете сообщение об ошибке, является неправильным поведением. Если вы создаете каталог просто для того, чтобы убедиться, что он существует, и по какой-то причине у вас ничего не получается, вам следует проверить, существует ли каталог. Это вызвало много ошибок во многих различных программах (таких как эта), и, черт возьми, вы, ребята, должны знать это уже сейчас.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .