如何获取Git中当前分支的名称?
当前回答
使用早期的想法;假设sha1为40个字符;和跟踪引用(是的,应该删除调试打印行:-):
git reflog | awk '
$3 == "checkout:" && (sha == "" || sha == $1 ) {
from=$(NF - 2)
to=$NF
print from, to, length(from) > "/dev/stderr"
if (length(from) != 40) { print from ; exit; }
sha=substr(from, 1, 7)
print sha > "/dev/stderr"
}
'
给出原始输出:
$ git status
HEAD detached at 147049c
[...]
$ ./gime-branch.sh
a47be8d2167641088b66bf8f5c2bf7d3da0c642c HEAD^ 40
a47be8d
master HEAD^ 6
master
其他回答
您还有显示完整refspec的git符号ref HEAD。
要在Git v1.8及更高版本中仅显示分支名称(感谢Greg指出这一点):
git symbolic-ref --short HEAD
在Git v1.7+上,您还可以执行以下操作:
git rev-parse --abbrev-ref HEAD
如果您在一个分支上,这两个分支都应该给出相同的分支名称。如果你头脑冷静,答案就不同了。
注:在早期的客户端上,这似乎有效:git符号ref HEAD|sed-e“s/^refs\/heads\///”–Darien 26。2014年3月
git branch | grep "*" | sed "s/* //" | awk '{printf $0}' | pbcopy
将结果直接复制到粘贴板。感谢@olivier refalo的开始…
在Shell上,您可以执行以下操作
git branch | grep '*'
gitbranch仅显示当前分支名称。
虽然gitbranch将显示所有分支并用星号突出显示当前分支,但在处理大量分支时,它可能太麻烦。
要仅显示当前所在的分支,请使用:
git rev-parse --abbrev-ref HEAD
可以在工作目录中使用gitbash命令如下
git status -b
它会告诉你你在哪个分支机构有许多有用的命令
-s
--短路,短路以短格式输出。
-b级--分支,分支以短格式显示分支和跟踪信息。
--瓷器[=]为脚本提供易于解析的输出格式。这与短输出类似,但无论用户配置如何,在Git版本中都会保持稳定。详见下文。
version参数用于指定格式版本。这是可选的,默认为原始版本v1格式。
--长的,长的以长格式给出输出。这是默认设置。
-五--冗长的,冗长的除了已更改的文件名之外,还显示要提交的文本更改(例如,像gitdiff-cached的输出)。如果两次指定了-v,那么还将显示工作树中尚未暂存的更改(例如,像gitdiff的输出)。
推荐文章
- Git分支之间的视觉差异
- 在GitHub中编辑git提交消息
- 是否有可能' git状态'只修改文件?
- Git:如何区分两个不同的文件在不同的分支?
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Mercurial:我可以重命名分支吗?
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?