以编程方式检查HEAD是否分离?

时间:2018-09-07 11:23:37

标签: git git-detached-head

我想知道脚本中是否处于“ HEAD detached”状态。

当前,我解析git status的输出,但是我不喜欢这样做,因为我听说解析用于人的Git输出是一种不好的做法-我想要一个程序友好的界面来告诉我HEAD是否分离。我也不想手动查看.git/HEAD或解析git descriptiongit branch

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

最简单的命令可能是:

$ 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.

答案 1 :(得分:2)

以编程方式,您需要包装public function scores() { return $this->hasMany(Score::class) ->select("id", "port_id", "name", DB::raw('AVG(score) as score')) ->groupBy('port_id', 'name'); } 协议。

例如,通过GitPython,您可以找出是否分离的存储库Git

答案 2 :(得分:0)

使用git branch查找分离的HEAD ...

$ git branch -q
* (HEAD detached at c61a6d2)
  master