💨

Windows で複数の Git リポジトリを一括で pull するバッチファイルを作ってみた

2022/12/09に公開

複数の Git リポジトリを一括で pull したい場合に便利なバッチファイルです。

以下のような構成になっていることを想定しています。

ルートフォルダ
 ├ 本バッチファイル
  ├ リポジトリのフォルダ1
  ├ リポジトリのフォルダ2
  ├ リポジトリのフォルダ3
  :
@echo off
setlocal enabledelayedexpansion
SET MY_FOLDER=%~dp0
REM ここにインストールしたgitのパスをセット
SET GIT="c:\git\bin\git"
echo.
echo ============================
echo git 最新化
echo ============================
echo.
for /F "usebackq" %%u in (`dir "%MY_FOLDER%" /B /A:D`) do (
  SET TARGET_PATH=%MY_FOLDER%%%u
  if exist "!TARGET_PATH!\.git" (
    echo ***** !TARGET_PATH! *****
    cd /d "!TARGET_PATH!"
    REM 変更を退避する
    %GIT% stash -u
    REM PULL
    %GIT% pull --progress -v --no-rebase "origin"
    REM 退避した変更を戻す
    %GIT% stash pop
  )
)
cd /d "%MY_FOLDER%"
REM 実行を止めたい場合
REM pause
exit /b 0

Discussion