如何获取Git中当前分支的名称?
当前回答
git status
还将给出分支名称以及更改。
e.g.
>git status
On branch master // <-- branch name here
.....
其他回答
随着时间的推移,我们可能会有一长串分支。
虽然其他一些解决方案很好,但以下是我所做的(从雅各布的回答中简化):
git branch | grep \*
Now,
git status
有效,但仅当有任何本地更改时
在分离头上返回分支名称或SHA1:
git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD
这是@dmaestro12答案的简短版本,没有标记支持。
使用早期的想法;假设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
git status
还将给出分支名称以及更改。
e.g.
>git status
On branch master // <-- branch name here
.....
这个呢?
{ git symbolic-ref HEAD 2> /dev/null || git rev-parse --short HEAD 2> /dev/null } | sed "s#refs/heads/##"
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- 在GitHub上有一个公共回购的私人分支?
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式