Files
git-mirror-zip/README.md
T

64 lines
2.5 KiB
Markdown

# 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` создаётся при работе и автоматически удаляется после завершения.