Можно ли указать новое местоположение локального git-репозитория для существующего конфига?

По умолчанию я обычно запускаю git init и иметь локальный репозиторий в корневом каталоге. Я храню и работаю с файлами своего проекта на маленьком твердотельном накопителе, но у меня БОЛЬШОЙ SATA HD на той же машине, который мало что делает. Я думал, что я должен начать практиковать использование этого для фактических репозиториев для каждого проекта.


РЕДАКТИРОВАТЬ:
Под этим я имею в виду структуру каталогов:

SMALL-DRIVE> Мой проект>.git> файлы репозитория...
SMALL-DRIVE> Мой проект> src > dev файлы...

и хотя я хотел бы сохранить второй как есть, я хочу переместить 1-й в

BIG-DRIVE > репозитории> Мой проект>.git> файлы репозитория... (или что-то подобное)

Все остается на той же машине, и в удаленном репозитории, к которому я добавляю, не будет никаких изменений.

Я верю, что могу пройти git init этот новый путь для новых проектов (уверен, я смогу понять это самостоятельно), но есть ли способ обновить существующий конфиг, чтобы использовать новый путь? И если да, есть ли команда, которая будет перемещать текущие файлы в хранилище, или я просто переместил бы вручную каталог.git?

3 ответа

Решение

[...] есть ли способ обновить существующую конфигурацию, чтобы использовать новый путь?

Если я правильно понимаю ваш вопрос, у вас есть репо на маленьком, но быстром HD, и вы хотели бы

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

Я прав?

В таком случае, git init --separate-git-dir прямо в вашем переулке. квотирование git init Страница человека:

--separate-git-dir=<git dir> Вместо инициализации хранилища в качестве каталога $GIT_DIR или же ./.git/создайте там текстовый файл, содержащий путь к реальному хранилищу. Этот файл действует как независимая от файловой системы Git символическая ссылка на хранилище.

Если это повторная инициализация, хранилище будет перемещено по указанному пути.

Так просто cd в репо, а затем запустить

git init --separate-git-dir <desired-location-on-big-and-slow-drive>

Я верю, что могу пройти git init этот новый путь для новых проектов [...]

Правильный. Используйте ту же команду, что и выше.

Да, ты можешь.

Вариант 1 (предпочтительный): зеркальное отображение

Просто запустите эти команды для зеркалирования хранилища:

git clone --mirror git@example.com/upstream-repository.git
cd upstream-repository.git
git push --mirror git@example.com/new-location.git

Подробнее о зеркалировании смотрите здесь

Вариант 2: Ручное клонирование и пуш

Первый шаг к git clone хранилище в локальный каталог.

Затем вы добавляете новый удаленный репозиторий, используя git remote add <name> <url>

Тогда вы можете просто git push <name> --all отправить все туда

Добавьте новый Remote Git в свой Git Repo

git remote добавить источник git@yourgit.repo

Проверьте новый удаленный репо

git remote -v

Другие вопросы по тегам