我正在嘗試撰寫一個簡單的 zsh 函式來洗掉具有特定模式的所有 git 分支。該函式包含一個簡單的條件,用于檢查是否需要洗掉任何分支。如果是這樣,它將洗掉它們。如果不是,則表示沒有要洗掉的分支。
這是我到目前為止所擁有的:
deletedependabotbranches () {
dependabot_branches=$(git branch | grep '^\*\?\s*dependabot/')
if dependabot_branches ; then
echo "Deleting dependabot branches..."
git branch -D dependabot_branches
else
echo "No dependabot PR's found"
fi
}
但我收到以下錯誤:
command not found: dependabot_branches
我該如何撰寫這個簡單的函式?
uj5u.com熱心網友回復:
將作業直接放入if
如下:
if dependabot_branches=$(git branch | grep '^\*\?\s*dependabot/')
then this
else that
fi
但是你的腳本有更嚴重的問題,git branch
并不是真正用于腳本使用,如果你已經簽出了一個dependabot分支,你將最終執行通配符分支洗掉。
git for-each-ref --format='delete %(refname)' refs/heads/dependabot\* \
| git update-ref --stdin
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497536.html
上一篇:克隆并從不同的存盤庫中提取