【问题标题】:How are the terms "HEAD", "head", and "tip" different?术语“HEAD”、“head”和“tip”有何不同?
【发布时间】:2014-09-25 23:35:54
【问题描述】:

初步了解

头部

  • "表示当前分支的头部。"
  • 所以,只有一个 HEAD。

  • 指的是最近提交的任何分支。
  • "...分支的最新提交(或“头”)..."
  • 所以,与分支一样多。

提示

  • 指的是最近提交的任何分支。
  • 所以,tip 是 head 的同义词

如果我错了,请纠正我。另外,请提供有关“tip”用法的文档。

阅读答案后的新理解

每个分支都指向一个提交。头部(或尖端)是分支指向的提交。如果有十个分支,那么就有十个头和十个提示!

HEAD 是一个“你在这里”标记,它以两种方式之一指向提交:大多数时候,HEAD 指向一个分支,该分支又指向一个提交;其他时候,HEAD 直接指向提交。后者称为分离的 HEAD。

报价是from git(1)

【问题讨论】:

    标签: git branch terminology


    【解决方案1】:

    分支(又名分支负责人)在您的回购中标记兴趣点。这个比喻并不完美,但您可以将分支视为某种“书签”。每个分支都指向一个提交;该提交称为分支的 tip

    HEAD(注意大写)是不同的。它通常指向一个分支,指示您当前在您的存储库中的哪个兴趣点。但是,在某些情况下,HEAD 也可能直接指向提交(在这种情况下,您的 repo 被称为“分离的 HEAD”)。

    你可以把HEAD想象成

    1. Metro 地图上的“你在这里”标记,即您的提交图;或
    2. 当前签出哪个分支(如果有)的指示器。

    例如,在下面的仓库中,master 分支的 tip 是缩写 ID f42c5 的提交; develop 分支的 tip 是缩写 ID 190a3 的提交; HEAD指向master,表示master当前已签出。

    【讨论】:

    • The docsgit commit --amend 让我们:“通过创建新提交来替换当前分支的尖端。”是否也可以说“通过创建新提交来替换 HEAD?”
    • 不,不是。你不会“替换”HEAD;相反,你让它指向另一个提交。要更好地了解修改提交的含义,请参阅 stackoverflow.com/questions/25948049/…
    • 为什么 HEAD 通常指向一个分支而不是一个提交?文档说它“表示当前分支的头部”,并且该头部是指最近的提交。 Ergo HEAD 应该引用当前分支的最新提交。
    • 太棒了。我想我理解:1. 分支指向提交,2. 头(又名提示)是分支指向的提交。 3. HEAD 指向一个分支(指向一个提交)或直接指向一个提交(在分离的 HEAD 情况下)。
    • @ShaunLuttin 是的;就是这样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    相关资源
    最近更新 更多