【发布时间】:2021-09-09 03:34:17
【问题描述】:
我想知道当 HEAD 在签出后分离时,是否有办法仅输出远程 git 分支的名称。
现在我正在按照How to get the current branch name in Git? 中的步骤进行操作,但这仅在您处于非分离 HEAD 中时才有效。在分离的 HEAD 中,git rev-parse --abbrev-ref HEAD 之类的命令将简单地输出“HEAD”。
最接近显示分支名称的是运行git branch,它将当前分支显示为* (HEAD detached at {remote-name}/{branch-name})。
这对于实际目的来说非常好,但我的好奇心越来越好,我想知道是否有一个命令可以简单地输出仅原始分支的名称,而不是而不是它前面的上下文。
我还想更好地理解为什么当我完成这些步骤时,HEAD 会分离。
工作流程
当我检查远程分支以进行 PR 审查时,就会出现这种情况。以下是我为实现此场景而运行的命令:
> git remote add {name for this remote} {git url}
> git fetch {name for this remote}
> git checkout remotes/{remote-name}/{branch name}
> git branch
【问题讨论】:
-
git branch(和git status)通过在 reflogs 中四处游荡来跳这个“HEAD detached {at|from}...”,但是没有导出任何东西可以让你从命令行。可能应该有;你可以要求它作为一个新的 Git 功能(也许在 rev-parse 中?),或者自己处理它并将其提交到邮件列表。
标签: git github version-control branch pull-request