如何获取Git中当前分支的名称?
当前回答
可以在工作目录中使用gitbash命令如下
git status -b
它会告诉你你在哪个分支机构有许多有用的命令
-s
--短路,短路以短格式输出。
-b级--分支,分支以短格式显示分支和跟踪信息。
--瓷器[=]为脚本提供易于解析的输出格式。这与短输出类似,但无论用户配置如何,在Git版本中都会保持稳定。详见下文。
version参数用于指定格式版本。这是可选的,默认为原始版本v1格式。
--长的,长的以长格式给出输出。这是默认设置。
-五--冗长的,冗长的除了已更改的文件名之外,还显示要提交的文本更改(例如,像gitdiff-cached的输出)。如果两次指定了-v,那么还将显示工作树中尚未暂存的更改(例如,像gitdiff的输出)。
其他回答
随着时间的推移,我们可能会有一长串分支。
虽然其他一些解决方案很好,但以下是我所做的(从雅各布的回答中简化):
git branch | grep \*
Now,
git status
有效,但仅当有任何本地更改时
很抱歉,这是另一个命令行答案,但当我发现这个问题时,我正在寻找这个答案,其中许多答案都很有用。我的解决方案是以下bashshell函数:
get_branch () {
git rev-parse --abbrev-ref HEAD | grep -v HEAD || \
git describe --exact-match HEAD 2> /dev/null || \
git rev-parse HEAD
}
这应该总是给我一些既可读又可直接用作git checkout参数的东西。
在本地分支上:feature/HS-0001在标记的提交(分离)上:v3.29.5在远程分支上(已分离,未标记):SHA1在任何其他分离的提交上:SHA1
如果在分支上,则仅显示当前分支的名称,但如果分离,则打印当前提交id:
git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD
如果分离,第一部分将返回错误,第二部分将始终打印当前提交id。
使用Mac将其添加到PS1:
PS1='\W@\u >`[ -d .git ] && git branch | grep ^*|cut -d" " -f2`> $ '
在运行上述命令之前:
运行该命令后:
不要担心,如果它不是GIT存储库,它不会显示错误,因为[-d.GIT]会检查.GIT文件夹是否存在。
还有一种选择:
git name-rev --name-only HEAD
推荐文章
- 在多个阶段条目的git中出现致命错误
- Git合并错误“提交不可能,因为你有未合并的文件”
- Git推送错误:拒绝更新签出的分支
- 撤销一个合并拉请求?
- Git -dir没有正常工作
- 密码身份验证暂时被禁用,作为停电的一部分。请改用个人访问令牌
- 如何使Sublime Text成为Git的默认编辑器?
- 我怎么能在' git日志'中显示分支的名称?
- Subversion中的主干、分支和标签是什么?
- 用新的.gitignore文件重新同步git repo
- 如何正确地关闭一个功能分支在Mercurial?
- 如何预览git-pull?
- 如何删除git历史记录中的特定修订?
- 如何获得Git存储库中的Git存储库名称?
- 当git说它正在“解析delta”时,它实际上在做什么?