Безопасно ли клонировать репозиторий git в его собственный каталог.git?

Я недавно поставил свой сайт под контроль версий Git. Я использую GIT-FTP для загрузки файлов, и я настроил его так, чтобы master ветвь - это контент, который должен находиться на сервере, а live Ветка - это контент, который на самом деле находится на сервере. Мне нужно сделать это различие, так как я иногда развиваюсь там, где у меня нет подключения к Интернету, и поэтому не могу загрузить прямо сейчас. Поэтому для загрузки я делаю: git checkout live;git merge master;git ftp push; Я хотел бы автоматизировать этот процесс и не терять оставшееся состояние рабочего каталога. В будущем я также собираюсь настроить автоматическое резервное копирование нескольких файлов, которые будут переданы ftp'ом и переданы live ветка.

Чтобы сделать все это, мне понадобится еще один клон, который будет использоваться только автоматизированными процессами и всегда будет иметь чистый рабочий каталог. Очевидное место для его размещения, поскольку его никогда не нужно будет искать, находится в каталоге.git основного репозитория. Таким образом, у меня нет клона, плавающего где-то еще в моей файловой системе, он остается скрытым, и очевидно, что он является частью внутренних компонентов, и с ним не стоит соваться. Если это работает хорошо, я могу даже отправить патч, чтобы исправить проблему git-ftp #180 с помощью этого метода.

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

2 ответа

Решение

.git каталог, похоже, полностью игнорирует любые дополнительные элементы, поэтому добавление git-репо прямо в .git должно сработать.
Это не сработает, если вы добавите свое вложенное хранилище в подкаталог, например, .git/refs (см. http://git-scm.com/book/en/Git-Internals-Git-References)

Обратите внимание, что у вас также может быть это git-репо в любом месте вашего текущего git-репо, например, в каталоге с именем .ftprepo (имя, начинающееся с точки, которая должна быть скрыта по умолчанию)

Я нашел ответ по ошибке, когда искал что-то еще!

Согласно https://www.kernel.org/pub/software/scm/git/docs/, "SCM более высокого уровня могут предоставлять и управлять дополнительной информацией в $GIT_DIR". Похоже, это означает, что дополнительная информация может храниться в.git, не вызывая проблем, включая, по-видимому, еще один клон репозитория.

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