【问题标题】:Difference between HEAD and masterHEAD 和 master 的区别
【发布时间】:2011-05-22 04:18:19
【问题描述】:

Git 中的HEADmaster 有什么区别?

我在 GitHub 上克隆了一个项目,并希望将我的更改推送到远程。但是我应该推到哪一个呢?

【问题讨论】:

    标签: git github head master


    【解决方案1】:

    简单的答案是HEAD 是指向您当前所在分支的最新提交的指针/标签。 master 是您在初始化 git 存储库时创建的默认分支(例如 git init)。

    您可以删除master 分支(例如git branch -D master)。您不能删除 HEAD 指针。

    【讨论】:

    • "HEAD 是指向您当前所在分支的最新提交的指针/标签。"我认为这充其量是误导。如果您签出较旧的提交,则 HEAD 现在是指向该较旧提交的指针,而不是最近的提交。对吗?
    • 你是对的。 HEAD 是您的最新结帐。但在我的辩护中,对于 Git,checkout 命令相当于在其他常见的 SCM 系统中切换分支。
    • 我很同情...我很容易犯同样的错误。我注意到的唯一原因是因为我正处于尝试研究 HEAD 真正含义的阶段。你有没有机会编辑你的答案是正确的?对于像我这样的非 git 专家,我发现 HEAD 是一个很难找到准确描述的概念。并且在网络上提供关于 HEAD 的不正确信息的建议会使它变得相当困难。
    • 我认为您的评论对于任何想要更深入地了解 Git HEAD 指针到底是什么的人来说都是一个极好的澄清。我很欣赏你的评论,并认为其他人也会。我的原始帖子内容与您的后续评论相得益彰。谢谢。
    • 技术性问题,但如果您签出较旧的提交,则您不再“在”分支上。如果你签出一个提交而不是一个分支,你就有了所谓的“分离的 HEAD”,你不再是“在一个分支上”。 “在一个分支上”意味着您的 HEAD 正在引用一个分支,并且根据定义,您处于该分支的最新提交中。仅仅因为您已签出提交“b54fe7”,并且 master 指向该提交,并不意味着您在 master 分支上。可能有多个分支指向同一个提交,如果有的话,你就在 HEAD 指向的那个分支上。
    【解决方案2】:

    master 是对分支结尾的引用。按照惯例(默认情况下),这通常是主要的集成分支,但并非必须如此。

    HEAD 实际上是一种特殊类型的引用,它指向另一个引用。它可能指向master 也可能不是(它将指向当前签出的任何分支)。如果您知道要提交到 master 分支,请推送到此。

    这是一个视觉示例:

    在您自己的存储库中,您可以通过运行以下命令检查HEAD 指向的位置:

    $ git symbolic-ref HEAD
    refs/heads/master
    

    但是,找出remotes/origin/HEAD 指向的位置比较棘手,因为它位于远程计算机上。

    这里有一个关于 git 参考的很棒的小教程:

    http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1

    【讨论】:

    【解决方案3】:

    只需推送当前分支的更改

    git push origin
    

    它会将您的分支“B”更改为“origin/B”。
    如果您在 master 分支上,git 将推送到 origin/master
    实际上,它会将所有更改推送到在origin 具有匹配远程分支的本地分支上。它由配置设置 push.default 控制。
    另见pushing RefSpecs in the Pro Git book


    您看到的是代表GitX projectExperimental GitX fork 中远程回购的所有参考规范的侧边栏。

    HEAD 将指定该遥控器的默认分支。
    git remote set-head man page

    不需要为远程设置默认分支,但允许指定远程的名称来代替特定分支。
    例如,如果origin 的默认分支设置为master,则可以在通常指定origin/master 的任何位置指定origin

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 2011-11-17
      • 2011-01-14
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      相关资源
      最近更新 更多