Answers:
master是对分支结束的引用。按照惯例(默认情况下),这通常是主要的集成分支,但不一定必须如此。
HEAD实际上是一种特殊类型的引用,它指向另一个引用。它可能指向master 或不指向(它将指向当前签出的任何分支)。如果您知道要提交到master分支,则请推送至此。
这是一个视觉示例:

在您自己的存储库中,您可以HEAD通过运行以下命令检查指向的位置:
$ git symbolic-ref HEAD
refs/heads/master
但是,找出remotes/origin/HEADs指向的位置比较麻烦,因为它位于远程计算机上。
这里有一个关于git参考的很棒的小教程:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
简单的答案是HEAD指向您当前所在分支的最新提交的指针/标签。master是初始化git存储库(例如git init)时创建的默认分支。
您可以删除 master分支(例如git branch -D master)。您不能删除HEAD指针。
HEAD是指向您当前所在分支的最新提交的指针/标签。” 我认为这充其量是一种误导。如果您签出一个较早的提交,则HEAD现在是指向该较早提交而不是最新提交的指针。对?
                    checkout命令等效于切换其他常见SCM系统中的分支。
                    HEAD指针真正含义的人来说都是一个奇妙的澄清。我感谢您的评论,并认为其他人也会如此。我原始帖子的内容与您的后续评论相辅相成。谢谢。
                    只需推动您当前分支的更改
git push origin
它将把您的分支“ B”更改为“ origin/B”。
如果您在master分支机构,则git将推送到origin/master。
实际上,它将在上匹配远程分支的本地分支上推送所有更改origin。它由配置设置push.default控制。
另请参阅在Pro Git书中推送RefSpecs。
您将看到的是侧边栏,该侧边栏代表GitX项目的实验性GitX分支中的远程回购的所有refspec。

在HEAD将指定默认分支为远程。
参见git remote set-head手册页:
不需要具有远程的默认分支,但是可以指定远程的名称来代替特定的分支。
例如,如果将的默认分支origin设置为master,则origin可以在通常指定的任何位置指定origin/master。