# Git Mirror Zip Клонировать git-репозиторий полностью (все ветки, теги, refs) и упаковать в zip с максимальным сжатием. Или восстановить бэкап в целевой репозиторий. ## Требования - **Git** — установлен и доступен в PATH - Никаких дополнительных зависимостей ## Файлы | Файл | ОС | Описание | |------|----|----------| | `git-mirror-zip.sh` | Linux | Скачать репо в zip | | `git-mirror-zip-macos.sh` | macOS | Скачать репо в zip | | `git-mirror-zip.bat` | Windows (CMD) | Скачать репо в zip | | `git-mirror-zip.ps1` | Windows (PowerShell) | Скачать репо в zip | | `git-restore-zip.sh` | Linux | Восстановить из zip | | `git-restore-zip-macos.sh` | macOS | Восстановить из zip | | `git-restore-zip.bat` | Windows (CMD) | Восстановить из zip | | `git-restore-zip.ps1` | Windows (PowerShell) | Восстановить из zip | ## Бэкап ```bash # Linux / macOS chmod +x git-mirror-zip.sh ./git-mirror-zip.sh https://github.com/user/repo.git my-repo.zip # Windows CMD git-mirror-zip.bat https://github.com/user/repo.git my-repo.zip # Windows PowerShell .\git-mirror-zip.ps1 https://github.com/user/repo.git my-repo.zip ``` Второй аргумент (имя zip) опциональный, по умолчанию `repo.zip`. ## Восстановление ```bash # Linux / macOS chmod +x git-restore-zip.sh ./git-restore-zip.sh my-repo.zip https://git.example.com/user/repo.git # Windows CMD git-restore-zip.bat my-repo.zip https://git.example.com/user/repo.git # Windows PowerShell .\git-restore-zip.ps1 my-repo.zip https://git.example.com/user/repo.git ``` Скрипт распакует архив, переключит remote на целевой репозиторий и выполнит `git push --mirror`, тем самым восстановив все ветки, теги и refs. ## Что внутри архива `git clone --mirror` копирует: - Все ветки (локальные и удалённые) - Все теги (лёгкие и аннотированные) - Все refs (notes, stash и т.д.) - Полную историю коммитов Временная директория `.tmp_git_mirror` / `.tmp_restore_mirror` создаётся при работе и автоматически удаляется после завершения.