我有一个自定义Git命令,该命令有条件地删除具有远程连接的本地分支:
#!/usr/bin/env bash
GONE_BRANCHES=$(git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}')
if [ -z "$GONE_BRANCHES" ]; then
echo "Could not find any local branches that have a gone remote"
exit 0
fi
if [ "$1" = "-f" ]; then
echo "$GONE_BRANCHES" | xargs git branch -D
else
echo "$GONE_BRANCHES" | xargs git branch -d 2>/dev/null
if [ $? -eq 1 ]; then
FAILED_TO_DELETE="true"
fi
fi
if [ "$FAILED_TO_DELETE" = "true" ]; then
echo "error: Some local branches are not fully merged."
echo "If you are sure you want to delete them, run 'git-glean -f'"
fi
this question
我试图建立一个解决方案,它仍然输出
git branch -d
,但如果无法删除错误消息,则接受(隐藏)错误消息并回显自定义错误消息。
问题是,条件错误消息从未触发(对于那些无法使用删除的分支)
).