bash / zsh関数で何をし、出力に従ってAまたはBを実行するにはどうすればよいですか?

bash / zsh関数で何をし、出力に従ってAまたはBを実行するにはどうすればよいですか?

この関数はフォルダ内のすべてのローカルgitリポジトリを見つけて操作を実行します~/srcgit pullますますエラーが発生します。

Please commit your changes or stash them before you merge.
Aborting

この問題を解決するには実行する必要がありますが、そのgit reset --hard出力に基づいてそのコマンドを実行する方法を生涯知ることはできませんgit pull。上記のメッセージが表示された場合は実行しgit reset --hard、そうでない場合は正常に続行してください。

現在の反応機​​能は次のとおりです。

updatesrc() {
  for i in */.git;
    do (
     echo $i;
     cd $i/..;
     git pull;
    );
  done
}

ベストアンサー1

次のようなことができます

local_changes=$(git status -s)
if [[ -n "$local_changes" ]]; then
    git reset --hard
fi

より適切なgitサブコマンドがあると確信しています。

ただし、ローカルの変更にまったく気にしない場合は、無条件にリセットしてください。

git reset --hard
git pull

おすすめ記事