Что такое git mirror
Что проверяют
Знаете ли вы, чем зеркало отличается от обычного клона, и понимаете ли, что именно оно копирует. Вопрос обычно возникает вокруг инфраструктуры: внутренние зеркала внешних репозиториев нужны, чтобы сборка не зависела от чужой доступности, а питонист сталкивается с этим, когда зависимости ставятся не из публичного индекса, а из внутреннего источника.
Как отвечать
Зеркало это голый репозиторий без рабочего каталога, который хранит все ссылки оригинала один к одному: ветки, теги, заметки. git clone --mirror не просто выкачивает всё, он настраивает правило выборки так, что последующее обновление перезаписывает локальные ссылки в точности как в источнике, включая удаления. Отсюда две команды всего жизненного цикла: клонирование зеркала и периодическое обновление по расписанию.
Отличие от голого клона стоит назвать прямо: голый клон это просто репозиторий без рабочей копии, он не тянет за собой все ссылки и не синхронизируется как копия. Отличие от обычного клона в том, что в зеркале нельзя работать, у него нет выгруженного дерева файлов.
Типовые применения: резервная копия истории, миграция между хостингами, внутренний источник для сборки, снижение нагрузки на внешний сервис. Полезно добавить, что зеркало односторонне по смыслу: правки, сделанные в нём самом, при следующем обновлении затираются.
Где спотыкаются
Путают зеркало с бэкапом всего проекта. В объектах Git лежат только код и история. Задачи, обсуждения, запросы на слияние, настройки сборки и права доступа остаются на стороне хостинга, а крупные файлы, хранимые отдельным механизмом, приходится выкачивать своей командой, иначе в зеркале окажутся одни указатели.
Отправляют зеркало на чужой адрес зеркальным пушем, не подумав. Такой пуш приводит удалённую сторону в точное соответствие локальной, то есть удаляет там ветки и теги, которых у вас нет. На живом репозитории это разрушительная операция.
Пробуют работать внутри зеркала: переключить ветку, собрать проект, что-то закоммитить. Рабочего дерева там нет, а любой коммит живёт до ближайшей синхронизации. Для работы делают обычный клон, зеркало оставляют машинам.