Как отсоединить локальный репозиторий git от его рабочего каталога? - PullRequest
1 голос
/ 16 августа 2010

Возможно ли это?

Я бы хотел, чтобы каталог .git находился на другом диске, чем каталог извлечения. Я не мог найти способ отсоединить оба.

Причина в том, что существует обменная зона на очень медленном сетевом диске и ограниченное пространство, и это настоящий кошмар с таймаутами. По крайней мере, операции с хранилищем (синхронизация с хранилищем svn) могут быть выполнены достаточно быстро, чтобы избежать тайм-аутов, и впоследствии можно выполнить копирование файла при извлечении с низкой производительностью. Я не мог найти какой-либо способ справиться с этой ситуацией (которая находится вне моего контроля)

Я бы не хотел, но если нет лучшего предложения, я бы заменил его на локальный git-репозиторий и rsync'ing каталог-извещатель в обоих направлениях на медленный диск и с него.

Бьюсь об заклад, у вас есть идея получше!

Ответы [ 2 ]

4 голосов
/ 16 августа 2010

Вы можете установить переменную окружения GIT_DIR :

Если установлена ​​переменная окружения $GIT_DIR, то в ней указывается путь, который следует использовать вместо ./.git для базы репозитория.

Если установка переменной окружения невозможна по какой-либо причине, вы можете использовать --git-dir параметр с любой командой git:

--git-dir=<path>

Укажите путь к хранилищу. Это также можно контролировать, устанавливая переменную среды GIT_DIR. Это может быть абсолютный или относительный путь к текущему рабочему каталогу.

2 голосов
/ 16 августа 2010

Я бы действительно посоветовал вам хранить весь репо на предпочитаемом вами диске. После этого вы можете поместить репо на диск, находящийся за пределами вашего контроля, и нажать на него. Это лучший способ минимизировать ваше взаимодействие с плохим хранилищем.

Если по какой-то причине вы должны разделить репо по дискам, почему бы просто не создать репо на одном диске, переместить каталог .git на другой диск, а затем символическую ссылку .git в вашем репо перемещенный каталог .git.

...