首页 > 解决方案 > 在 Git 的术语中,`origin` 是 ref 还是别的什么?

问题描述

在 Git 的术语中,是originref 还是别的什么?

origin在配置文件中定义为配置变量是否正确,remote.origin.url例如.git/config

例如,引用必须是文件.git/refs/heads/*吗?如果是,origin仍然可以成为裁判吗?

标签: git

解决方案


简短的回答:origin是一个由六个字符组成的字符串。它在任何地方是否有任何意义取决于“任何地方”。

更长的答案:是的,origin是参考或其他东西。

好的,这还不够长,所以让我们再长一点:

  • 一些 Git 命令会查找远程. 当你运行时git clone,如果你不使用该-o选项,你会得到一个名为的远程origin,所以:

    git remote show
    

    将列出origin。那是一个有效的遥控器。

  • 一些 Git 命令会查找提交说明符树说明符或类似内容。在这里,如果您使用一串不能被误认为是哈希 ID的字母,Git 将执行gitrevisions 文档中概述的六步解析过程。我不会在这里引用该文档,但请注意,六个步骤之一看起来是否存在。如果是一个有效的远程,并且以通常的方式运行,那么几乎可以肯定有一个有效的可以转换为一个有效的提交哈希 ID。refs/remotes/name/HEADorigingit fetchrefs/remotes/origin/HEAD

因此,当 Git 尝试将其用作originref-name 时,它​​是一种有效形式的. 当 Git 尝试将它用作一个远程时,它也是一个有效的远程。

请注意,某些 Git 命令会同时查找远程名称提交说明符。在这种情况下,origin可以在两个位置使用并具有两种含义:

git push origin origin:newbranch

例如。第一个origin是遥控器,第二个是参考。


推荐阅读