シェルスクリプトを使用してGitブランチを作成する必要がありますが、ブランチが存在する可能性があるため、それに注意する必要があります。現在、私は使用しています:
if [ `git branch | grep $branch_name` ]
then
echo "Branch named $branch_name already exists"
else
echo "Branch named $branch_name does not exist"
fi
しかし、問題はgrep
コマンドが正確な名前と一致せずにブランチ名を見つけることです。つまり、I grep name
その後、名前branch-name
が一致します。
これを行うより良い方法はありますか?
ありがとう!
注:これは常にtrueを返します。受け入れられたとしても、これは質問に対する正しい答えではありません。
常に\<
や\>
のような名前の周りにWordの境界を使用できますが、代わりにGitに作業を任せます:
if [ `git branch --list $branch_name` ]
then
echo "Branch name $branch_name already exists."
fi
Heathのソリューションは気に入っていますが、まだgrepにパイプしたい場合は、次のような正規表現アンカーを使用して、部分文字列の一致を除外できます。
if [ `git branch | egrep "^[[:space:]]+${branchname}$"` ]
then
echo "Branch exists"
fi
コマンドの出力はインデントされているため、space
文字クラスを使用する必要があることに注意してください。