git - 获取当前 Git 分支名称或提交哈希(如果已分离)
问题描述
如果有一个命令将打印当前分支(例如master
),或者如果它是分离的,是否有一个命令将打印当前分支?目的是给我一些写下来的东西,以便我以后可以执行git switch <branch_or_commit>
以回到我开始的地方。
这将以编程方式使用,因此不会刮擦git status
、 Bash 管道或其他任何东西。答案需要使用“管道”命令,这些命令可以保证其输出的格式和稳定性。
另外我应该注意到,对于这些想法中的每一个,有很多问题是单独提出的,而不是一起提出的。在随意将其标记为重复之前请三思。
这是我尝试过的事情。最接近的实际上是cat .git/HEAD
.
命令 | 分支上的输出 | 分离时输出 |
---|---|---|
git rev-parse HEAD |
cedbe9... |
cedbe9... |
git rev-parse --abbrev-ref HEAD |
master |
HEAD |
git symbolic-ref --short HEAD |
master |
fatal: ref HEAD is not a symbolic ref |
cat .git/HEAD |
ref: refs/heads/master |
cedbe9... |
git branch --show-current |
master |
(无输出) |
你的答案在这里 | master |
cedbe9... |
解决方案
仅使用一个命令是不可能的,但可能使用两个命令:
git symbolic-ref -q --short HEAD || git rev-parse HEAD
获取当前分支;但如果分离得到哈希。
推荐阅读
- javascript - 如何检查是否设置了类元素?
- c# - 让 Google Home Assistant 运行 CURL 命令
- angular - 如何使用 rxjs map 挖掘 HttpClient 获取请求响应?
- rpa - 使用 UiPath 将 Outlook 电子邮件文本放入 SharePoint 字段
- android - 带有 Tesseract 离线的 Ionic 4 得到“未捕获的 DOMException:无法在 'WorkerGlobalScope' 上执行 'importScripts'”
- macos - 在 Swift 中禁用工具栏按钮
- amazon-web-services - AWS DynamoDB 表结构
- php - 无法使用 php fwrite 创建带有“”的信息
- java - 你如何操作用 ANTLR 生成的树?
- javascript - 无法检索 HTML 集合长度