如何从自动完成中删除已删除的分支名称?
我用git branch -d myBranch
来删除一个分支。 然而,当我在主,并尝试签出一个新的分支与git checkout
, myBranch
仍然出现在选项卡自动完成。
如何从git checkout
tab-autocomplete中删除名称myBranch
?
一个可能的原因是,如果一个远程分支(例如origin/myBranch
)仍然存在,那么git checkout myBranch
将成功替代git checkout -b myBranch origin/myBranch
。 这是第一次为远程分支结帐的常见情况提供便利,创build一个名称相同的本地跟踪分支。
还有其他的可能性,取决于你正在使用什么来完成,但这是我要检查的第一件事情之一。 如果你运行git branch -a
,并且列出了一个origin/myBranch
(或者一个远程源而不是远程origin
,如果有的话),那么这可能是一个罪魁祸首。
git fetch --prune --all
作为自己的答案,因为这是一个单行修正,但如果你投票一定要投票@ twalberg的答案上面。
@ twalberg的build议git branch -a
带领我在正确的轨道上; 我的同事build议git fetch --prune --all
从所有的遥控器中git fetch --prune --all
所有的死树枝,这在与很多叉子工作的时候很有用。
这可能不是这样做,这是你的shell完成命令,因为你曾经使用过一次。
您可以通过inputhistory
或编辑~/.bash_history
来查看历史history
。 您可以从~/.bash_history
文件编辑历史logging,或者您可以inputhistory
,然后使用git checkout myBranch
获取行号,然后使用history -d {line number here}
。 作为最后的手段,您可以使用history -c
命令彻底查杀历史logging。