git标签的访问速度是否比git更快?

时间:2016-02-08 20:28:19

标签: git git-commit git-tag

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

我有文本文件中的数据。这些数据每天都在变化/增长。我将保存此数据的目录保存在源代码管理下,即git。 在每天结束时,我发出一个命令:

git commit -m "EOD YYYYMMDD"

通常,我需要查看过去某天数据的样子。

  1. 使用标签与提交相反不同吗?
  2. 标签的访问速度是否比提交更快,这意味着,检查某个给定文件的速度是否更快,因为过去某天的EOD在标签的帮助下而不是提交?
  3. 比另一个更节省空间吗? (我的目录大小是文本的3Gigs)

4 个答案:

答案 0 :(得分:3)

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

(至于空间,标签总是比没有标签消耗更多空间,但标签只是短文本文件,因此创建其中数千个文件只会最多只有几兆字节。)

您确实可以在进行日终提交后创建名为(例如)eod-20160208 的标记,然后通过运行简单{来查看今天的代码{1}}。这比查看最近提交的具有相关提交消息的提交更容易,但并不比完全跳过标记并运行git checkout eod-20160208更容易。

这让我想到另一点:Git会跟踪你的日期。我不会说你使用它错误,因为Git支持各种不同的工作流程;但是将日期放在提交消息中有点多余。如果您使用git checkout 'master@{2016-02-08}'git log或其他内容来查看提交历史记录,则会在提交消息旁边列出日期。因此,我建议使用gitk来描述您所做的更改,而不是指定何时进行更改。这个策略可以帮助我找到我正在寻找的更改。

答案 1 :(得分:1)

git标记指向提交;没有后者,前者没有意义。如果您希望能够在过去的某一天看到数据的样子,那么必须提交它;这就是提交的目的。总而言之,你做得恰到好处。

答案 2 :(得分:1)

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

因此问题3的答案肯定是否定的。

对于问题2:结帐不会更快发生,但如果您不知道提交消息的确切内容,您可能更容易列出可用标记并找到您要查找的提交 - 只是因为它们较少。

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

答案 3 :(得分:0)

1.使用标签而不是提交是不同的?

没有。标签只是指向提交时更难以理解的贴纸。

  1. 标签的访问速度是否比提交更快,这意味着,检查某个给定文件的速度是否更快,因为过去某天的EOD在标签的帮助下而不是提交?
  2. 不,因为最后,您检查标记指向的提交。在结账时间中唯一起作用的是目标工作目录远离当前工作目录的距离(应该从一个工作目录中应用哪些更改来获取另一个工作目录!)

    1. 比另一个更节省空间吗? (我的目录大小是文本的3Gigs)
    2. 标签几乎可以放置,但不是存储数据的位置(即提交)。标签只是一种记忆一些重要提交的便捷方式,可以在将来更轻松地找到它们。