この関数はフォルダ内のすべてのローカルgitリポジトリを見つけて操作を実行します~/src
。git 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