此函数会查找文件夹中的每个本地 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