如何限制Git远程仓库自动补全仅显示已配置的远程仓库?
解决Git补全显示无关域名的问题
方法1:禁用主机名补全对Git命令的干扰
zsh的补全系统会默认把主机名补全和Git远程仓库补全混在一起,你可以通过调整zsh配置,让Git命令仅使用自身的补全规则:
- 打开
~/.zshrc配置文件,添加以下内容:# 重置Git补全关联,避免混入主机名结果 compdef -d git compdef _git git - 执行
source ~/.zshrc让配置生效,之后再触发Git补全就只会显示已配置的远程仓库。
方法2:重写Git Push的补全逻辑
如果方法1无效,你可以直接自定义git push的补全规则,强制只读取本地已配置的远程仓库:
- 在
~/.zshrc中添加以下代码:# 自定义远程仓库补全逻辑,仅取git remote返回的结果 _git_remote() { local remotes=($(git remote)) _describe 'remote' remotes } # 替换git push的补全参数规则 _git_push() { _arguments \ ':remote:_git_remote' \ ':refspec:_git_refspec' } - 执行
source ~/.zshrc生效后,git push的补全就只会列出你本地配置的远程仓库。
方法3:更新oh-my-zsh
部分旧版本的oh-my-zsh git补全脚本存在逻辑bug,导致混入无关补全结果,你可以尝试更新oh-my-zsh:
omz update
更新完成后重启zsh,验证补全是否恢复正常。
内容的提问来源于stack exchange,提问作者GlinesMome
相关产品推荐
相关产品推荐

