Что означает флаг --mirror в git clone?

Флаг --mirror в команде git clone означает следующее:

  1. Полное клонирование репозитория: Флаг --mirror создает точную копию удаленного репозитория, включая все ветки, теги, рефспеки и конфигурации.

  2. Копирование всех ссылок: Все ссылки (refs) и конфигурационные данные клонируются. Это включает в себя не только стандартные ссылки (как в случае с --bare), но и все другие ссылки, такие как удаленные ветки и конфигурации.

  3. Отсутствие рабочей директории: Подобно --bare, репозиторий клонируется без рабочей директории, что означает, что он не содержит проверенных файлов и используется только для хранения данных репозитория.

  4. Идеально для зеркальных репозиториев: Это удобно для создания зеркал репозиториев, которые должны быть точными копиями оригинала, включая все метаданные и ссылки.

Пример использования

Когда вы используете git clone --mirror, результат будет таким:

git clone --mirror https://github.com/user/repository.git

Это создаст директорию repository.git, которая будет содержать точную копию удаленного репозитория. В отличие от обычного клонирования, где рабочая директория создается и инициализируется, --mirror клонирует только данные репозитория и метаданные.

Отличие от флага --bare

Хотя --bare также создает репозиторий без рабочей директории, разница между --bare и --mirror заключается в том, что --mirror также клонирует все ссылки и конфигурационные данные.

  • git clone --bare: Создает “голый” репозиторий без рабочей директории, копируя только стандартные ссылки и ветки.
  • git clone --mirror: Создает “зеркальный” репозиторий, копируя все ссылки и конфигурационные данные.

Таким образом, флаг --mirror используется для создания полной зеркальной копии репозитория, включая все ссылки и конфигурации.