假设我独自工作,且仅使用远程作为代码备份解决方案。有时可能会删除本地分支。
我知道可以使用
我知道可以使用
git push origin --delete mybranch
删除特定的远程分支,但是否有一种方法可以删除所有不存在本地的远程分支,而无需手动检查本地不存在的分支?git push origin --delete mybranch
删除特定的远程分支,但是否有一种方法可以删除所有不存在本地的远程分支,而无需手动检查本地不存在的分支?push --delete
,就像这个答案中所示。git branch -r --merged | grep -v master | sed 's/origin\///' | xargs -n 1 git push --delete origin
fetch --prune
远程分支,检查它们的本地副本是否存在,如果不存在,则push --delete
。git for-each-ref
与 refname:lstrip=3
格式 来列出这些远程分支的短名称: git for-each-ref --format='%(refname:lstrip=3)' refs/remotes/origin
if git show-ref --quiet refs/heads/develop; then
echo develop branch exists
fi
git fetch --prune
for branch in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes/origin); do
if ! git show-ref --quiet refs/heads/${branch}; then
echo "delete remote branch '${branch}'"
git push origin --delete ${branch}
fi
done
git for-each-ref
(从git fetch --prune
开始更新 Git 的远程跟踪分支)。 - torek