gpt4 book ai didi

git - 删除本地不存在的远程分支

转载 作者:太空狗 更新时间:2023-10-29 14:17:08 31 4
gpt4 key购买 nike

假设我一个人工作,我只使用 Remote 作为代码备份解决方案。有时我可能会删除本地分支。

我知道我可以使用 git push origin --delete mybranch 删除远程上的特定分支,但是有没有办法删除本地不存在的所有远程分支而无需手动检查对于本地不存在的分支机构?

最佳答案

Sometimes when working offline, I merge branches, and then I delete the old (merged) branches.

最好在线进行,因为您可以跟进 push --delete, as in this answer :

git branch -r --merged | grep -v master | sed 's/origin\///' | xargs -n 1 git push --delete origin

但由于您在本地(离线)删除了您的分支,因此您需要在在线时从 GitHub 中获取 --prune 远程分支,检查它们的本地副本是否存在,并且 push --delete 否则。

使用git for-each-ref with the refname:lstrip=3 format为了列出那些远程分支的简称:

 git for-each-ref --format='%(refname:lstrip=3)' refs/remotes/origin

你可以检查一个local branch does existsgit show-ref --quiet

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 - 删除本地不存在的远程分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008792/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com