我想知道我是否在脚本中处于“HEAD detached”状态。
目前我解析输出,git status
但我不喜欢这样做,因为我听说解析用于人类的 Git 输出是一种不好的做法——我想要一个程序友好的界面来告诉我 HEAD 是否已分离。我也不想手动查看.git/HEAD
或解析git description
or git branch
。
有任何想法吗?
我想知道我是否在脚本中处于“HEAD detached”状态。
目前我解析输出,git status
但我不喜欢这样做,因为我听说解析用于人类的 Git 输出是一种不好的做法——我想要一个程序友好的界面来告诉我 HEAD 是否已分离。我也不想手动查看.git/HEAD
或解析git description
or git branch
。
有任何想法吗?
最简单的命令可能是:
$ 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
协议的包装器。
例如,通过GitPython
您能够找出回购与否分离repo.head.is_detached
用于git branch
查找分离的 HEAD...
$ git branch -q
* (HEAD detached at c61a6d2)
master