use*_*054 3 linux git terminal
我已经删除了一些本地分支git branch -d branchname,但它们仍然存在于自动完成中(当我放git checkout,然后tab按键,我看到列表中的所有已删除的分支).
我试图让git gc与git prune,但没有任何变化.
TL; DR - 真正的答案:
$ git remote prune origin
Run Code Online (Sandbox Code Playgroud)
稍微详细一点:
git branch -d foo-branch 如果foo-branch未合并到您当前的分支中,将无法删除.
如果它们已经合并,那么清理遥控器上的旧分支也是个好主意.您可以从命令行执行此操作git push origin :foo-branch.
然而,旧的"幽灵"分支foo-branch将会自动完成git checkout.显然git正在缓存遥控器上可用的分支.致电:
$ git remote prune origin
Run Code Online (Sandbox Code Playgroud)
您可以清除git remote上可用分支的本地缓存.
我可以在OSX上重现针对git 2.2.1(可能还有早期版本)的OP问题.
如果您确定不需要该分支,可以将其从本地和远程中删除,如下所示:
$ git branch -D branchname
$ git push origin :branchname
Run Code Online (Sandbox Code Playgroud)
然后它将停止出现在自动完成结果中。