各リポジトリのルート ディレクトリに移動せずに、共有親ディレクトリから複数の git リポジトリを更新するにはどうすればよいですかcd
? 以下はすべて個別の git リポジトリ (サブモジュールではない) です。
/plugins/cms
/plugins/admin
/plugins/chart
これらすべてを一度に更新するか、少なくとも現在のワークフローを簡素化したいと考えています。
cd ~/plugins/admin
git pull origin master
cd ../chart
git pull
等
ベストアンサー1
plugins
この場合は、親ディレクトリから次のコマンドを実行します。
find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;
明確にするために:
find .
現在のディレクトリを検索します-type d
ファイルではなくディレクトリを検索する-depth 1
最大深度は1サブディレクトリ-exec {} \;
検索ごとにカスタムコマンドを実行するgit --git-dir={}/.git --work-tree=$PWD/{} pull
gitは個々のディレクトリをプルします
find を試してみるには、echo
afterを使用して-exec
プレビューすることをお勧めします。例:
find . -type d -depth 1 -exec echo git --git-dir={}/.git --work-tree=$PWD/{} status \;
注:-depth 1
オプションが利用できない場合は、 を試してください-mindepth 1 -maxdepth 1
。