複数のストレージがあるフォルダがあります。私が走ることができる方法はありませんかgit branch
?子各フォルダ内のコマンド?
$ ls
project1 project2 project3 project4
以下のような出力が必要です。
$ command
project1 [master]
project2 [dev]
project3 [master]
project4 [master]
ベストアンサー1
この試み。$1
すべてのリポジトリを含む親ディレクトリである必要があります(または「.」を使用して現在のディレクトリを表す)。
#!/bin/bash
function git_branches()
{
if [[ -z "$1" ]]; then
echo "Usage: $FUNCNAME <dir>" >&2
return 1
fi
if [[ ! -d "$1" ]]; then
echo "Invalid dir specified: '${1}'"
return 1
fi
# Subshell so we don't end up in a different dir than where we started.
(
cd "$1"
for sub in *; do
[[ -d "${sub}/.git" ]] || continue
echo "$sub [$(cd "$sub"; git branch | grep '^\*' | cut -d' ' -f2)]"
done
)
}
これを独自のスクリプトにすることも(置き換えることもできます$FUNCNAME
)、$0
関数内に保存してスクリプトで使用できます。