Edited at

ディレクトリ下の複数gitレポジトリに対してまとめてコマンド実行(zsh)

More than 1 year has passed since last update.

GitHubやBitbucketを使ってるとレポジトリが増えすぎてローカルの変更でpushできていないものはどれか等を調べるのが大変なのでシェルスクリプトにしました。

(OSの再インストールしようとした時にpushし忘れがあったら悲しい)

数分で作った適当なやつなのでメモ程度。。。


zshコード

以下のコードは現在のディレクトリ以下のgitレポジトリに対して同じ操作をします。

#!/usr/bin/zsh

# reference
# - zsh の配列操作の基本から応用まで - Qiita
# - https://qiita.com/mollifier/items/f897b3fddd2d10369333

local CWD=$(pwd)
# ローカル配列宣言
local -a GIT_REPOS
for repos in $(find ${CWD} -name ".git"); do
## remove ".git"
repos=${repos[1,-5]}
print ${repos};
cd ${repos}
# push (ref: https://qiita.com/mollifier/items/f897b3fddd2d10369333 )
GIT_REPOS=(${GIT_REPOS} ${repos})

#----------------------------------------
# git command
#----------------------------------------
git fetch
done

# 確認用
#print "GIT_REPOS"
#print ${GIT_REPOS}
#
#print "CWD"
#print ${CWD}