git获取当前分支名称

  • git branch | sed -n '/\* /s///p'
    • 本地分支: master
    • 远程跟踪分支(同步) : (detached from origin/master)
    • 远程跟踪分支(非同步) : (detached from origin/feature-foo)
    • 标签: (detached from v1.2.3)
    • 一般分离头: (detached from 285f294)
  • git status | head -1
    • 本地分支: # On branch master
    • 远程跟踪分支(同步) : # HEAD detached at origin/master
    • 远程跟踪分支(非同步) : # HEAD detached at origin/feature-foo
    • 标签: # HEAD detached at v1.2.3
    • 一般分离头: # HEAD detached at 285f294
  • git describe --all
    • 本地分支: heads/master
    • 远程跟踪分支(同步) : heads/master ( note: 不 remotes/origin/master )
    • 远程跟踪分支(非同步) : remotes/origin/feature-foo
    • 标签: v1.2.3
    • 一般分离头: v1.0.6-5-g2393761
  • cat .git/HEAD :
    • 本地分支: ref: refs/heads/master
    • 所有其它用例: SHA对应的commit
  • git rev-parse --abbrev-ref HEAD
    • 本地分支: master
    • 所有其它用例: HEAD
  • git symbolic-ref --short HEAD
    • 本地分支: master
    • 所有其它用例: fatal: ref HEAD is not a symbolic ref

转载于:https://my.oschina.net/3cwYg4/blog/800584

获取当前 Git 分支名称,可以使用以下几种方式,具体取决于你的需求和场景: ### 1. 获取当前本地分支名称 如果只是想获取当前所在的本地分支名称,可以使用以下命令: ```bash git branch --show-current ``` 该命令会直接输出当前分支名称,简洁高效。这是 Git 2.22 及以上版本支持的命令。 ### 2. 兼容性获取当前分支名称(适用于旧版本 Git) 在某些旧版本的 Git 中,`--show-current` 可能不可用。此时可以使用 `git rev-parse` 命令来获取当前分支名称: ```bash git rev-parse --abbrev-ref HEAD ``` 该命令会返回 `HEAD` 所指向的分支名,通常就是当前所在的分支。 ### 3. 获取当前分支的远程追踪分支名称 如果需要获取当前分支所关联的远程追踪分支名称(例如 `origin/main`),可以使用以下命令: ```bash git rev-parse --abbrev-ref --symbolic-full-name @{u} ``` 这条命令会输出当前分支对应的上游分支名称,前提是该分支已经设置了上游分支。如果没有设置上游分支Git 会提示错误。 ### 4. 获取当前分支及其远程分支信息 结合 `git for-each-ref` 可以更详细地展示分支信息,包括本地分支和其对应的远程追踪分支: ```bash git for-each-ref --format='%(refname:short) -> %(upstream:short)' refs/heads ``` 此命令会列出所有本地分支,并显示它们对应的远程追踪分支(如果已设置)。 ### 示例脚本 以下是一个简单的 shell 脚本,用于获取当前分支名称及其远程追踪分支: ```bash #!/bin/bash current_branch=$(git rev-parse --abbrev-ref HEAD) upstream_branch=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null) echo "当前分支: $current_branch" if [ -n "$upstream_branch" ]; then echo "远程追踪分支: $upstream_branch" else echo "未设置远程追踪分支" fi ``` 通过上述方法,可以灵活地根据实际需求获取 Git 当前分支名称及其相关信息。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值