JJD*_*JJD 8 git ubuntu zsh tab-completion oh-my-zsh
我使用的zsh与OH-MY-的zsh在Ubuntu 18.04.2。当前,Git安装在版本2.20.1中。
每当我想checkout从remote(origin)转到本地分支时,我都会尝试在shell中使用制表符补全,如下所示:
git checkout fea<TAB>
Run Code Online (Sandbox Code Playgroud)
制表符完成将导致:
git checkout origin/feature
Run Code Online (Sandbox Code Playgroud)
我实际上对制表符完成的期望是:
git checkout feature
Run Code Online (Sandbox Code Playgroud)
如何配置制表符完成以正确(?)完成远程分支-还是缺少某些内容?我的dotfile是公开的。
回复塔伦·拉尔瓦尼(Tarun Lalwani)的评论:的输出git branch -a是:
开发
*客房服务
遥控器/起源/ HEAD->起源/开发
遥控器/起源/开发
遥控器/起源/主
遥控器/起源/释放
遥控器/起源/功能
经过深入研究,发现git checkoutZSH下的完成并不是由oh-my-zsh完成的,而是由_gitshell设施提供的功能完成的。
正如评论中所述,我无法重现您遇到的问题。一切似乎都按预期进行。尽管如此\xe2\x80\xa6
\n\n查看以下文件:
\n\n/usr/share/zsh/<5.x>/functions/_git\nRun Code Online (Sandbox Code Playgroud)\n\n我本地的zsh版本是5.2。在第450行左右,您可以看到:
\n\n/usr/share/zsh/<5.x>/functions/_git\nRun Code Online (Sandbox Code Playgroud)\n\n删除传递给的数组之一会_alternative更改在完成分支名称后向您提供的建议git checkout。特别是,删除$remote_branch_noprefix_arg会返回带有前缀的远程分支名称origin或其各自的远程存储库名称。
因此,升级您的 shell 或降级到以前的版本可能是一个好主意。
\n\n还有一些细节:
\n\ngit push略有不同。git checkoutfeature与 不同origin/feature,即使前一个分支存在,通常配置为跟踪后者;feature将创建一个配置为跟踪远程分支的同名本地分支,然后切换到它,而签出origin/feature将使您处于分离状态模式,允许浏览此远程分支但直接在其之上提交。| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |