我不确定 git 补全是在哪里实现的,但我在 MacOS 上运行 zsh 和 oh-my-zsh。如果我输入,git branch -v我会看到我有 4 个本地分支机构
> git branch -v\n dangling-pointer ce141cd55 Metal: Fix dangling pointer in IntermRebuild\n* fix-occlusion-query-m1 67a147feb Metal: Fix Occlusion Query bug on M1\n main 93c0c90db Suppress the failing egl test to unblock roller\n readpixel-speed-test 3ebef5614 Metal:Read Pixels Speed Test\nRun Code Online (Sandbox Code Playgroud)\n但如果我输入git checkout <tab>我会得到这个
\xe2\x9d\xaf git checkout <tab>\nzsh: do you wish to see all 6036 possibilities (776 lines)? \nRun Code Online (Sandbox Code Playgroud)\n其他 6032 种可能性是标签和其他一些相关的东西,例如HEAD, FETCH_HEAD,ORIG_HEAD
检查另一个仓库,只有一个分支
\n\xe2\x9d\xaf git branch -v\n* master 8ce048a build\nRun Code Online (Sandbox Code Playgroud)\n但自动完成显示
\n\xe2\x9d\xaf git checkout <tab>\nzsh: do you wish to see all 186 possibilities (34 lines)? \nRun Code Online (Sandbox Code Playgroud)\n如果我选择是的话
\n\xe2\x9d\xaf git checkout\nFETCH_HEAD fix-uniform-block-padding-issue origin/dev test \nHEAD lgtm-test origin/fix-uniform-block-padding-issue uniform-tree \nORIG_HEAD master origin/lgtm-test v4.21.2 \nallow-sharing-arrays origin/HEAD origin/master v4.22.0 \ncap-sphere origin/allow-sharing-arrays origin/test v4.22.1 \ndev origin/cap-sphere origin/uniform-tree \nv0.0.1 v0.0.9 v0.0.17 v0.0.25 v0.0.34 v0.0.42 v1.5.1 v2.1.0 v2.6.1 v3.0.2 v3.4.1 v4.0.1 v4.5.1 v4.9.1 v4.11.2 v4.14.0 v4.17.0 v4.19.5 \nv0.0.2 v0.0.10 v0.0.18 v0.0.26 v0.0.35 v1.0.0 v1.5.2 v2.1.1 v2.6.2 v3.1.0 v3.5.0 v4.1.0 v4.5.2 v4.9.2 v4.11.3 v4.14.1 v4.18.0 v4.20.0 \nv0.0.3 v0.0.11 v0.0.19 v0.0.27 v0.0.36 v1.1.0 v1.6.0 v2.1.3 v2.7.0 v3.2.0 v3.6.0 v4.2.0 v4.6.0 v4.9.3 v4.11.4 v4.14.2 v4.18.1 v4.21.0 \nv0.0.4 v0.0.12 v0.0.20 v0.0.29 v0.0.37 v1.2.0 v1.6.1 v2.2.0 v2.8.0 v3.2.1 v3.7.0 v4.3.0 v4.7.0 v4.9.4 v4.11.5 v4.15.0 v4.19.0 v4.21.1 \nv0.0.5 v0.0.13 v0.0.21 v0.0.30 v0.0.38 v1.3.0 v1.7.0 v2.3.0 v2.8.1 v3.2.2 v3.7.1 v4.3.1 v4.8.0 v4.10.0 v4.12.0 v4.15.1 v4.19.1 v4.21.2 \nv0.0.6 v0.0.14 v0.0.22 v0.0.31 v0.0.39 v1.4.0 v1.7.1 v2.4.0 v2.8.2 v3.3.0 v3.8.0 v4.3.2 v4.8.1 v4.10.1 v4.12.1 v4.15.2 v4.19.2 v4.22.0 \nv0.0.7 v0.0.15 v0.0.23 v0.0.32 v0.0.40 v1.4.1 v1.8.0 v2.5.0 v3.0.0 v3.3.1 v3.8.1 v4.4.0 v4.8.2 v4.11.0 v4.13.0 v4.16.0 v4.19.3 v4.22.1 \nv0.0.8 v0.0.16 v0.0.24 v0.0.33 v0.0.41 v1.5.0 v1.9.0 v2.6.0 v3.0.1 v3.4.0 v4.0.0 v4.5.0 v4.9.0 v4.11.1 v4.13.1 v4.16.3 v4.19.4 \n8ce048a -- [HEAD] build (4 days ago)\n5a4e7b5 -- [HEAD^] bump to v4.22.1 (4 days ago)\n5c85f3a -- [HEAD^^] changelist (4 days ago)\n9a19a3f -- [HEAD~3] fixed missing return types in `vertex-arrays.js` (4 days ago)\n05807c5 -- [HEAD~4] build (8 weeks ago)\nb35e44a -- [HEAD~5] bump to v4.22.0 (8 weeks ago)\n297e0d1 -- [HEAD~6] add samples to AttachmentOptions (8 weeks ago)\naa7fe4a -- [HEAD~7] build (8 months ago)\na3cb143 -- [HEAD~8] update docs (8 months ago)\n7944f37 -- [HEAD~9] build (8 months ago)\n9850f58 -- [HEAD~10] typo (8 months ago)\nbf3b5c1 -- [HEAD~11] build (8 months ago)\n74eb006 -- [HEAD~12] typo (8 months ago)\n859ebd0 -- [HEAD~13] build (8 months ago)\n8718e95 -- [HEAD~14] typo (8 months ago)\n11d1c92 -- [HEAD~15] remove unused modules (8 months ago)\nf8141e9 -- [HEAD~16] move old tests to new test harness (8 months ago)\nb8a7b1a -- [HEAD~17] build (8 months ago)\n190c144 -- [HEAD~18] bump to v4.21.2 (8 months ago)\n2a3aeff -- [HEAD~19] fix for Safari's lack of lookbehind assertions (8 months ago)\nRun Code Online (Sandbox Code Playgroud)\n我不确定为什么它显示最后 20 次提交(或最后的任何内容)
\n有没有办法配置 git 自动完成,使其只显示本地分支?因为它是补全对我来说几乎没有用,除非我已经知道分支名称,以便我可以输入一些字符并过滤补全。
\n有人建议--no-guess。这给出了一个较小的列表,但还不够小。
\xe2\x9d\xaf git branch -v\n backup-packpixels 923bd8756 Metal:Speed up BGRA8 to RGBA8 copy for readPixels\n* buffersubdata-perf-test 8b2807fc0 Metal: Use Vulkan style BufferSubData impl\n check-cb-order 7e92ef8aa Metal: Fix for not submitting command buffers in order\n clear-surface 924f6de7d Metal:Clear Backbuffer when Robust Resource Init enabled\n main 29d18b303 [behind 39] Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart"\n\n> git checkout <tab>\nzsh: do you wish to see all 6486 possibilities (2176 lines)? \n> git checkout --no-guess\nzsh: do you wish to see all 3298 possibilities (1113 lines)? \nRun Code Online (Sandbox Code Playgroud)\n仍然有 3294 个条目太多,git branch -v仅显示 4 个分支
\xe2\x9d\xaf export GIT_COMPLETION_CHECKOUT_NO_GUESS=1\n\xe2\x9d\xaf git checkout \nzsh: do you wish to see all 6450 possibilities (6450 lines)? \nRun Code Online (Sandbox Code Playgroud)\n没有效果
\n虽然我看到它被引用~/.oh-my-zsh/plugins/gitfast/git-completion.bash
也没有
\n__gitcomp_nl "$(__git_refs...\nRun Code Online (Sandbox Code Playgroud)\n在文件中git-completion.bash。
小智 0
简短而甜蜜的答案是,是的,有。
这篇博文提供了有关如何实现它的简单易懂的说明:https://cmetcalfe.ca/blog/git-checkout-autocomplete-local-branches-only.html
注意:在文章中,Carey 建议创建一个新的别名来检查本地分支,即checkoutr
我强烈建议遵循这种方法,因为有时您可能需要查看完整的选项列表 - 因此分离出命令是理想的选择。
另外,如果您使用brew在MacOS上安装git,那么您正在寻找的配置文件可能在这里:
$(brew --prefix)/etc/bash_completion.d/git-completion.bash
Run Code Online (Sandbox Code Playgroud)
如果您没有正确遵循此信息,请告诉我,我将进行更深入的研究。