git remote prune不删除远程分支

时间:2014-02-21 00:45:19

标签: git

git branch -r显示了我从另一台计算机上删除的一堆分支:

-bash-4.1$ git branch -r
origin/access-qa
origin/add-search-efforts
origin/align-buttons
origin/enable-features
origin/fix-code-coverage
origin/master
origin/qa
origin/search-effort-qa
origin/specs-run-once-test

ls-remote没有显示这样的分支:

bash-4.1$ git ls-remote origin
5a14d91b7b257f194a82e4d51a4b7e9523969c5a    HEAD
ac5962d0b35910494ad1079dc050e7ed605cb52b    refs/heads/align-buttons
5a14d91b7b257f394a82e4d51a4b7e9523969c5a    refs/heads/master
d8bc750f9a763cf7b74a546e6aee6b1764b3a65b    refs/heads/search-effort-qa
d20c2691afead974156d2d47fd7cd7dc3d40870e    refs/pull/1/head
3648c9e85be2dffd9175e3a39ab6b19761d111e1    refs/pull/1/merge
326476732e6dc41d87c3fd556fc2f5f272a58236    refs/pull/2/head
5e55eb5c4c76667dd2369cf7830b30c0e256b501    refs/pull/2/merge
da4731db499709c6f96010adb583eb23898ec91d    refs/pull/3/head

我试图摆脱它们:

git remote prune origin
git fetch origin --prune
git remote update -p
git prune
git fsck
git gc
git gc --prune=now

git branch -r仍显示分支。

请注意,这是一个Jenkins工作区(每个工作区都有git clone的repo)。我有5个其他工作区。在一个工作区中,git remote prune origin完美运行。

我开始认为我的回购已经腐败了。删除远程并重新添加成功会删除远程引用,但我认为有更好的方法。

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题,但从git中删除分支的最佳方法是:

git branch -D branchName (your branch will be removed from your local)
git push origin :branchName (your branch will be removed in the repository)

希望这个肝脏

答案 1 :(得分:0)

Git的这种行为很奇怪。可以用git config remote.origin.fetch的错误值来解释。

相关问题