Git远程有master分支,但没有HEAD指针。

5
我刚接触Git,所以可能有些地方不理解,但我还是要问一下。通过TortoiseGit,我做了以下操作:
  • 在本地初始化一个新的Git仓库
  • 添加一个readme文件并提交
  • 添加一个新的远程仓库
  • 将新的仓库推送到orgin(远程)
如果我浏览引用,我会看到以下内容:
heads/master
remotes/origin/master
我发现奇怪的是,在远程中我没有看到HEAD。
如果我删除本地仓库,然后从服务器克隆它(我刚才推送的),然后浏览引用,我会看到:
heads/master
remotes/origin/HEAD
remotes/origin/master
那么为什么在最初的推送之后我没有看到远程头呢?
注:我已经通过Git Bash命令做了同样的事情,并看到了相同的结果。
2个回答

3

这是因为HEAD不是一个远程引用,所以你不应该推送它。它只是指向远程存储库的HEAD指向的提交的引用。服务器上的此存储库显然具有工作树,并且不是使用git init --bare命令创建的。我猜Tortoise Git只是因为软件中的某些规则而忽略它。听起来很奇怪,git竟然无法显示它。


0

这是因为您没有拉取您的代码库。当您推送时,您会更新远程/origin/master引用,但不会更新HEAD,因为它可能指向其他提交。如果在HEAD到达后再进行拉取,则可以解决此问题。

这将随着您的克隆一起出现。从远程获取所有引用,如HEAD和master。


我不是完全确定我理解了 - 你是说在我完成对远程的初始推送之后,如果我执行Pull和/或Fetch,我应该得到HEAD吗?因为我尝试过,但并没有得到。 - dwynne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接