1
2
TL;博士一切都很好。 长的GitHub试图向GitHub用户隐藏Git的许多复杂性。我认为这是一个错误。虽然Git是出了名的用户不友好(参见,例如。, "10 things I hate about Git" 或 xkcd #1597 ), 一些 这种复杂性确实是必要的。 1.
在Git标签的情况下,要了解标签的一点是,任何一个标签都只是某些特定哈希ID的一个人类可读的名称。哈希ID是那些大而难看的数字,就像GitHub灰显和缩写的东西,几乎无法读取。在您的屏幕截图中,此处显示的两个
这些哈希ID是 真实的 Git对象的名称,即Git本身用于 发现 对象的内容。这些哈希ID本身是通过应用加密哈希生成的 到 内容,因此哈希ID是键值数据库的短(ish)键:给定键,该键保证对这些特定内容是唯一的, 2. Git可以查找该值并获取整个内容。由于这两个哈希值不同,因此这两个对象也必然不同。如果这两个对象是相同的,那么这两个哈希值将是相同的。 对于带注释的标记对象,实际上有必要再深入一点:带注释标记的内容包括 目标对象 。这可以通过命令lineagain轻松完成,GitHub隐藏了详细信息,但命令行也不是那么清楚:
例如,将查找对象
将找到
犯罪
对象
对于使用该系统的用户来说,更实际的是,给定两个标记名,您只需使用 名称 :
以及:
查找标记指向的提交。(有些炮弹可能需要在帽子周围加上某种引号
将两个标记哈希中的每一个解析为提交将告诉您哪个提交或提交两个不同的标记名称。可以为单个提交提供多个标记,但您没有这样做,因此您将得到两个不同的提交哈希。这些承诺就是
1. Albert Einstein is often paraphrased as saying Everything should be made as simple as possible, but not simpler, 虽然 Wikiquote says he actually wrote It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience. 2. 这有点夸张,具体取决于您的Git版本。看见 Hash collision in git 有关详细信息。 如果您是Git用户,还需要了解更多信息:标记vs分支,以及提交图如果您只想安装,以上内容可能就是您所关心的全部。然而,对于使用Git本身的人来说,还有另一件事需要从中学习。
我们在上面看到,通过
获取如下哈希ID,但我们也可以运行:
并获取哈希ID。此哈希ID是(一个,单个!)提交名称
分支名称的特殊之处在于
改变
随着时间的推移。它们现在存储一个哈希ID,然后在您运行
之后
其基本机制是特殊名称
如果分支名称只有一个大写字母,我们可以这样画出来:
也就是说
在我们的例子中,我们的存储库很小:它只有这三个提交。犯罪
换句话说,Git是有效的 向后 。
当你做出新的承诺时
现在呢
同样,这也是树枝正常移动和生长的方式。之间的区别
分支机构名称
从提交到提交的链接形式a 图表 ,正是这个提交图将Git粘合在一起。GitHub试图对您隐藏提交图。因为Git主要是关于graphmere的 文件 过来坐车吧——这是一种可怕的伤害。理解提交图对于使用Git至关重要。 |
2
2
这只是基于github如何在其UI中显示标记的误解。当git在提交上显示标记时,这并不一定意味着提交是用该版本标记的。要查看github中的实际标记,可以单击“Releases”选项卡。 |
charleslcso · 从开源克隆并推送到我的GitHub[重复] 1 年前 |
Itachi · 无法为python项目安装“DAWG”包 1 年前 |
Igor · git重置已删除目录上的头 2 年前 |
Robo · 撤消删除Git中被忽略的文件 2 年前 |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
Siggi · 使用git移动文件时丢失历史记录 2 年前 |