これは、git の問題というよりも、シェル スクリプトに関する質問です。
次のようなディレクトリ構造があります。
/projects/Project1/package1
/projects/Project1/package2
/projects/Project1/package3
等...
各パッケージに git を使用していますが、各パッケージのリモートから最新の変更を取得するスクリプトを実行しようとしています。私は現在、パッケージディレクトリのリストを持っていますが、次のことをしたいと思います: 1 - 各パッケージディレクトリを反復処理する 2 - 各パッケージディレクトリについて、現在のブランチを取得し、変数に保存します
ディレクトリに移動し、「git branch」コマンドを実行して解析し、出力を変数に吐き出す方法がわからないため、現在ステップ2で立ち往生しています。これらの各ステップを個別に行うことはできますが、まとめることはできません。
これは私が現在持っているものです:
for pkgName in `ls "$WORKSPACE"/src/`
do
pkgDir="$WORKSPACE"/src/"$pkgName"
CURRENT_BRANCH=${cd $pkgDir && `git branch 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1/"`}
echo $CURRENT_BRANCH
#... checkout to mainline, pull, then checkout $CURRENT_BRANCH and rebase mainline...
done
基本的に、ディレクトリの git ブランチ名を「$CURRENT_BRANCH」に割り当てたいと思います。