git 标签访问速度是否比 git 提交快?

Are git tags faster to access than git commits?

我不确定问题的标题是否最合适。

我有文本文件中的数据。这个数据每天 changes/grows。我将保存这些数据的目录置于源代码管理之下,git。 每天结束时,我发出命令:

git commit -m "EOD YYYYMMDD"

经常,我需要查看过去某天的数据。

  1. 使用标签与提交有什么不同吗?
  2. 访问标签是否比提交更快,这意味着,与提交相比,在标签的帮助下检出给定文件是否更快,就像它在过去某一天的 EOD 一样?
  3. 1 个 space 比另一个更有效吗? (我的目录大小是 3Gigs 的文本)

一个git标签指向一个提交;没有后者,前者就没有意义。如果您想查看过去某天的数据,您必须提交它;这就是提交的目的。长话短说,你做得对。

如果不清楚:使用标签并不意味着您不再需要提交。一个(带注释的)标签只不过是一个带有一些额外元信息的提交,而一个轻量级标签实际上只是一个指向提交(如分支)的指针。

所以问题3的答案肯定是否定的。

对于问题 2:结账并没有更快,但是如果您如果不知道提交消息的确切内容,您可能更容易列出可用标签并找到您正在寻找的提交 - 仅仅是因为它们更少。

最后是你的第 1 个问题:同样,标签只是提交的注释,旨在让你更容易找到对你有特殊意义的特定版本的文件。

标签指向提交。除非有要指向的提交,否则您无法创建标签。所以这里真的没有选择。

(至于space,一个标签总是比没有标签消耗更多space,但标签只是短文本文件,所以创建一千个标签只会净赚几兆字节大多数。)

您当然可以创建名为(例如)eod-20160208 after 的标签,然后在进行日终提交后检查代码通过 运行 一个简单的 git checkout eod-20160208。这将比通过相关提交消息查看最近的提交更容易,但并不比完全跳过标记和 运行 git checkout 'master@{2016-02-08}'.

更容易

这让我想到了另一点:Git 为您跟踪日期。我不会说你用的错了,因为Git支持多种不同的工作流程;但是将日期放在提交消息中有点多余。如果您使用 git loggitk 或其他方式来查看您的提交历史记录,日期会列在提交消息旁边。所以我建议使用 -m 来描述您所做的更改,而不是指定您何时进行的。这个策略帮助我更快地找到我正在寻找的改变。

1.Is 使用标签与提交不同?

没有。标签只是一个更易于理解的小标签,用于指向提交。

  1. 访问标签是否比提交更快,也就是说,在标签而不是提交的帮助下检出给定文件是否更快,就像它在过去某一天的 EOD 一样?

不,因为最后,你检查了标记指向的提交。唯一对检查时间起作用的是目标工作目录与当前工作目录的距离(从一个目录应用到另一个目录的更改是什么!)

  1. 1 个 space 比另一个更有效吗? (我的目录大小是 3Gigs 的文本)

标签几乎就位,但那不是存储数据的地方(这是提交)。标签只是一种方便的方式来记住一些重要的提交,以便将来更容易找到它们。