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
完美运行。
我开始认为我的回购已经腐败了。删除远程并重新添加成功会删除远程引用,但我认为有更好的方法。
答案 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
的错误值来解释。