【问题标题】:Timestamps in GitGit 中的时间戳
【发布时间】:2012-02-02 00:24:02
【问题描述】:

问题

  1. 当我向分支提交修订时,是否记录了它们的“提交时间戳”,如果是,它曾经被使用过吗?为了什么?在我看来,提交链/树就是你所需要的。

  2. 如果有记录它的“提交时间戳”,是客户端(委员会)还是服务器(主存储库)?

  3. 当我合并两个分支时,合并时要考虑什么?基本上合并的规则是什么?它是否在其下写入具有较少提交的文件?它是否使用时间戳来确定哪个更新?

在此先感谢,正在寻找答案或好的资源。

【问题讨论】:

  • 请在每个帖子中提出一个问题。这就是 Stack Overflow 的 Q/A 格式的设计原理。
  • 所有问题都紧密相关。我想他们在一起会更好。
  • @PatrickLorio:第三个其实和前两个没什么关系,第一个和第二个只是有点关系。

标签: git merge timestamp


【解决方案1】:
  1. 是的,当您查看日志时,您会看到提交的时间。示例:

    $ git log -1
    commit 4f0ba140d3a9709825c4d6b77ca5b69d09825c41
    Author: Somebody <someone@somewhere>
    Date:   Tue Jan 24 16:36:55 2012 -0800
    
        Commit message goes here
    
  2. Git 是分布式的,没有客户端或服务器。

  3. 这取决于您希望合并如何工作。 The documentation 将为您描述所有可能的选项。基本的合并案例只接受自共同祖先以来的所有提交。

【讨论】:

  • 2 在这种情况下,时间戳是如何同步的?
  • 如果您将提交推送到另一个存储库,或者如果其他人拉取它们,时间戳将继续存在。
  • 假设 Bob 在分支 A 上提交,他的本地时钟提前 5 小时,而 Jill 在 Bob 提交后立即在分支 B 上提交。合并时 Bob 的提交会覆盖 Jill 的吗?
  • 你会得到两个。如果有冲突,您需要解决它。提交的顺序真的很重要吗?这就是 git 的全部意义所在 - 如果您不喜欢合并所做的事情,您可以随意重新排序它们。
  • @PatrickLorio:一切都是关于提交的。提交代表存储库内容的快照。它记录时间只是为了您的利益,因此您可以看到它是什么时候制作的;它与内容无关。合并是具有两个父级的提交,生成的快照应该是从共同祖先到这两个提交中的每一个所做的更改的组合。没有什么可以覆盖任何东西;如果双方意见不一致,那就是你必须处理的冲突。推荐阅读:tom.preston-werner.com/2009/05/19/the-git-parable.html
猜你喜欢
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 2010-10-02
相关资源
最近更新 更多