【问题标题】:How to detect if HEAD points to an unborn branch?如何检测 HEAD 是否指向未出生的分支?
【发布时间】:2015-03-04 23:47:58
【问题描述】:

如何检测当前 HEAD 是否为未出生的分支?

"git rev-parse HEAD --" 输出

fatal: bad revision 'HEAD'

但 git 也会为所有其他输入输出这个,比如“git rev-parse noHEAD --”。

“git branch”返回一个空输出。

我是否必须阅读 .git/HEAD 并检查内容是否以“ref:”开头并且引用不存在?

【问题讨论】:

  • 你可以看这里:stackoverflow.com/q/4848607/2082964,显然git branch -a 应该说:无法将 HEAD 解析为有效参考。这可能会进一步帮助您?
  • 你的 git 版本是多少?
  • 我使用的是 1.9.5(Windows 上的 msysgit)
  • git branch -a 给你什么?没有什么可以帮助你进一步?否则我除了解析 .git/HEAD 没有别的想法 :)
  • "git branch -a" 也是空的

标签: git


【解决方案1】:

但是 git 也会为所有其他输入输出这个,比如“git rev-parse noHEAD --”。

区别在于HEAD 必须根据定义存在于存储库中。

如果您的HEAD 不是有效修订版,那么它一定指向一个尚未诞生的分支。

例如:

> git checkout --orphan newbranch
> git rev-parse HEAD --
fatal: bad revision 'HEAD'

如果你有一个分支签出:

> git checkout master
> git rev-parse HEAD --

如果HEAD 不存在或损坏:

> git rev-parse HEAD --
fatal: Not a git repository (or any of the parent directories): .git

【讨论】:

  • 如何解决这个问题?
  • 您可以像这样修复丢失的头部git symbolic-ref HEAD refs/heads/master
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 2017-01-31
  • 2017-03-07
  • 1970-01-01
相关资源
最近更新 更多