脚本取值专用命令
脚本取值的常用命令:取仓库根目录、取当前分支名、取短哈希、校验引用是否合法。自动化脚本中取值优先使用它,比解析人类可读的输出稳定得多,输出格式调整时也不容易突然失效。
基本信息
| 仓库根目录 | 输出工作区根目录的绝对路径 |
|---|---|
| 当前分支 | 输出分支名,游离状态下输出固定字样 |
| 短哈希 | 输出缩写后的提交哈希 |
| 严格校验 | 校验引用是否存在,失败时返回非零退出码 |
| 路径信息 | 可输出相对路径与仓库管理目录的位置 |
典型使用场景
- 脚本里定位仓库根目录,稳定构造相对路径
- 判断当前目录是否位于工作区内
- 取当前分支名或提交哈希写入产物
- 校验某个引用是否存在再继续执行
- 在不解析状态输出的前提下获取仓库信息
常用示例
常用示例
git rev-parse --show-toplevel # 仓库根目录绝对路径
git rev-parse HEAD # 完整提交哈希
git rev-parse --abbrev-ref HEAD # 当前分支名
git rev-parse --short HEAD # 缩写哈希
git rev-parse --is-inside-work-tree # 判断是否位于工作区
git rev-parse --verify main^{commit} # 严格校验引用是否指向提交常用选项
| 选项 | 输出 |
|---|---|
| --show-toplevel | 仓库根目录的绝对路径 |
| --abbrev-ref | 分支名,游离状态下为固定字样 |
| --short | 缩写形式的提交哈希 |
| --verify | 校验引用,失败时返回非零退出码 |
自动化脚本中取值优先用它,比解析状态输出更稳定,后续版本调整格式时脚本不会静默失效。
游离头指针时分支名会输出固定字样,脚本需要准备哈希兜底判断,否则会拿到无意义的值。
校验失败的退出码可以直接用于条件判断,比把输出与字符串做比较可靠得多。
需要判断当前目录是否位于仓库内时,用是否处于工作树的检查,比反复判断目录是否存在更直接。