Answers:
master
是对分支结束的引用。按照惯例(默认情况下),这通常是主要的集成分支,但不一定必须如此。
HEAD
实际上是一种特殊类型的引用,它指向另一个引用。它可能指向master
或不指向(它将指向当前签出的任何分支)。如果您知道要提交到master
分支,则请推送至此。
这是一个视觉示例:
在您自己的存储库中,您可以HEAD
通过运行以下命令检查指向的位置:
$ git symbolic-ref HEAD
refs/heads/master
但是,找出remotes/origin/HEAD
s指向的位置比较麻烦,因为它位于远程计算机上。
这里有一个关于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
。