要查看 Mac 上某个终端窗口对应的 Git 分支,请在该窗口中运行 git branch --show-current。Git 会输出该 Shell 当前所在仓库检出的分支。如果没有任何输出,检出状态可能处于分离 HEAD 状态;如果 Git 提示不是仓库,请先检查该窗口当前所在的目录。
检查当前终端窗口中的分支
点击要确认的终端窗口,输入以下命令并按回车键(Return):
git branch --show-current
例如,输出 feature/search 表示该 Shell 处于已检出该分支的 Git 工作区中。该命令仅报告当前分支名称,而不会列出所有分支。根据 Git 文档说明,在分离 HEAD 状态下(即检出直接指向某个提交而非具名分支时),该命令不会输出任何内容。Git 的 git branch 文档
该结果仅适用于运行命令时所在的目录。每个终端窗口或标签页都可以有不同的当前目录,因此请务必在需要检查的具体窗口中运行该命令。如果您打开了多个相似的窗口,请在操作前同时确认项目目录和分支。
确认窗口当前所在的项目
运行 pwd 查看 Shell 的当前目录。然后使用 Git 识别工作树的顶层目录:
pwd
git rev-parse --show-toplevel
第一条命令显示当前位置;第二条命令在当前目录属于工作区时输出仓库根目录。Git 文档指出,如果不存在工作区,--show-toplevel 会报错。Git 的 git rev-parse 文档
当两个项目使用相似的分支名称,或者 Shell 位于深层嵌套的文件夹中时,此项额外检查非常有用。即使在仓库的子目录下,Git 仍能识别包含它的工作区及其检出的分支。该路径有助于证明您当前查看的是哪个项目;单纯的分支命令无法通过名称识别项目。
使用 git status 进行二次确认
如需进行快速综合检查,请运行:
git status -sb
带有 -b 的简短状态格式包含分支信息行以及紧凑的文件变更摘要。例如,## main 表示分支为 main;附加文本可能会说明跟踪状态。git status 还能帮助您在继续操作之前注意到已修改、已暂存或未跟踪的文件。Git 文档说明,-b 以简短格式显示分支和跟踪信息。Git 的 git status 文档
分支识别与文件状态解决的是不同的问题。分支名称告诉您检出的是哪个具名分支;其余的状态输出则告诉您工作区中是否有改动。干净的状态并不代表分支与远程保持最新,单凭分支名称也无法得知文件是否已被编辑。
如果命令没有显示分支
如果 Git 提示当前目录不是仓库,该 Shell 可能位于个人主目录、其他项目或工作区之外的目录中。使用 pwd 查看当前所在位置。如果您知道该项目的路径,请使用 cd 切换到该目录并再次运行分支命令。例如,将示例路径替换为您实际的项目路径:
cd ~/Projects/sample-project
git branch --show-current
如果您已经在仓库中,但分支命令没有返回任何文本,请检查 git status -sb。Git 文档中说明的 --show-current 行为是在分离 HEAD 状态下不输出任何内容。此时状态输出可能会显示 (HEAD detached at ...);在这种状态下,没有可报告的当前本地分支名称。切勿凭记忆将上次使用的分支误当作当前分支。
让项目在终端中更易于识别
macOS 终端可以在窗口或标签页标题中显示工作目录。要进行配置,请打开 终端 > 设置,选择 描述文件,选中该窗口正在使用的描述文件,然后点击 窗口 选择要在标题中显示的信息,如工作目录或其完整路径。标签页标题在 描述文件 > 标签页 下有其独立的设置。Apple 指出,描述文件设置仅适用于所选的描述文件,因此如果标题没有变化,请检查当前生效的描述文件。Apple 终端窗口标题指南 以及 Apple 终端标签页标题指南
目录标题有助于区分项目位置,但其本身并不显示 Git 分支。要准确确认分支,请在对应窗口中运行 git branch --show-current;如果您还想快速查看文件变更和跟踪信息,可以使用 git status -sb。
参考来源
Git - git-branch 文档 — Git
Git - git-rev-parse 文档 — Git
Git - git-status 文档 — Git
在 Mac 上的“终端”中更改窗口中显示的标题 — Apple
在 Mac 上的“终端”中更改“描述文件”的“标签页”设置 — Apple