以编程方式检查 HEAD 是否分离?
Programmatically check if HEAD is detached?
我想知道我在脚本中是否处于 "HEAD detached" 状态。
目前我正在解析 git status
的输出,但我不喜欢这样做,因为我听说解析 Git 用于人类的输出是一种不好的做法 - 我想要一个程序友好的界面告诉我 HEAD 是否分离。我也不想手动查看 .git/HEAD
或解析 git description
或 git branch
.
有什么想法吗?
以编程方式,您需要 Git
协议的包装器。
例如,通过 GitPython
你可以找出 repo 分离与否 repo.head.is_detached
最简单的命令可能是:
$ git symbolic-ref -q HEAD
查看退出状态:0表示正常; 1 已分离。
来自 git-symbolic-ref
的文档:
-q, --quiet
Do not issue an error message if the <name> is not a symbolic ref
but a detached HEAD; instead exit with non-zero status silently.
使用git branch
找到分离的HEAD...
$ git branch -q
* (HEAD detached at c61a6d2)
master
从git 2.22开始,您还可以使用:
git branch --show-current
不在分支上时不打印任何内容。
我想知道我在脚本中是否处于 "HEAD detached" 状态。
目前我正在解析 git status
的输出,但我不喜欢这样做,因为我听说解析 Git 用于人类的输出是一种不好的做法 - 我想要一个程序友好的界面告诉我 HEAD 是否分离。我也不想手动查看 .git/HEAD
或解析 git description
或 git branch
.
有什么想法吗?
以编程方式,您需要 Git
协议的包装器。
例如,通过 GitPython
你可以找出 repo 分离与否 repo.head.is_detached
最简单的命令可能是:
$ git symbolic-ref -q HEAD
查看退出状态:0表示正常; 1 已分离。
来自 git-symbolic-ref
的文档:
-q, --quiet
Do not issue an error message if the <name> is not a symbolic ref
but a detached HEAD; instead exit with non-zero status silently.
使用git branch
找到分离的HEAD...
$ git branch -q
* (HEAD detached at c61a6d2)
master
从git 2.22开始,您还可以使用:
git branch --show-current
不在分支上时不打印任何内容。