我遇到了一个奇怪的问题,我真的不知道它是由与我的 Git 安装或我的 shell 相关的东西引起的,还是完全由其他原因引起的。如果我在一个有大量分支和提交的 Git 存储库中,我尝试列出分支:
$ git branch
$ git branch -a
$ git branch --list
Run Code Online (Sandbox Code Playgroud)
根本没有输出。但是,如果我通过echo结果运行这些命令的输出,正如人们所期望的那样:
$ echo "`git branch`"
local-branch-1
local-branch-2
* master
$ echo "$(git branch -a)"
local-branch-1
local-branch-2
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
我的配置是 macOS 10.14.6,通过 Homebrew 安装了 Git 2.29.2。我正在使用带有 Prezto 或 PowerLevel10k 配置的 ZSH 5.8(也是 Homebrew)。尽管这些工具的别名很多快捷方式到Git命令,没有什么是别名从 git *可能是干扰:
$ type git
git is /usr/local/bin/git
git is /usr/bin/git
Run Code Online (Sandbox Code Playgroud)
我也试过一个原始的 Bash 5.0.18 shell,结果是一样的。
ZSH 选项卡完成正确显示了分支,例如,如果我:
$ git checkout <tab>
local-branch-1 …Run Code Online (Sandbox Code Playgroud)