@echo off setlocal enabledelayedexpansion :: Restore a git mirror backup into a target repository. :: Works on Windows (CMD). if "%~1"=="" ( echo Usage: %~nx0 ^ ^ exit /b 1 ) set "ZIP=%~1" set "TARGET=%~2" set "WORK_DIR=.tmp_restore_mirror" if not exist "%ZIP%" ( echo Error: file not found: %ZIP% exit /b 1 ) echo [1/3] Extracting %ZIP% ... mkdir "%WORK_DIR%" >nul 2>&1 powershell -NoProfile -Command "Expand-Archive -Path '%ZIP%' -DestinationPath '%WORK_DIR%' -Force" echo [2/3] Pushing all refs to %TARGET% ... pushd "%WORK_DIR%" git remote set-url origin "%TARGET%" git push --mirror popd echo [3/3] Done. Repository restored at %TARGET% rmdir /s /q "%WORK_DIR%" >nul 2>&1