【问题标题】:Git Snapshots, how they work?Git 快照,它们是如何工作的?
【发布时间】:2013-09-30 10:41:33
【问题描述】:

谁能解释一下 git 中快照的概念。我确实了解哪些数据可以存储为一系列变更集,但这与 git 中的快照有何不同。为什么这样更好?

基本的 Git 工作流程是这样的:(取自 git 文档)

  1. 您修改了工作目录中的文件。
  2. 您暂存文件,将它们的快照添加到暂存区域。
  3. 您进行了一次提交,这会将文件原样保存在暂存区域中,并将该快照永久存储到您的 Git 目录中。

【问题讨论】:

标签: git version-control git-commit


【解决方案1】:

git commit objects 本质上是您所说的快照。

git 中的每个提交都代表了整个树的快照(或状态),就像它在那个时刻一样。另一个提交创建另一个快照,依此类推。

您始终可以通过签出提交来回退整个树的状态:git checkout commit_id - 这几乎就像时间机器。

当您git add 文件时,您并没有真正制作快照,您只需将这些文件放入索引中以成为下一次提交的一部分,这样当您实际提交时,提交对象将仅引用那些为 @987654324 的文件@-ed(实际上,这些文件是在树的帮助下组织的 blob)。

【讨论】:

    【解决方案2】:

    我认为文档很糟糕。

    你熟悉工作树,就是你看到的文件,暂存区或索引就像草稿,最终提交就是快照。

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 2018-07-29
      • 2011-06-25
      • 2018-09-05
      • 2015-02-11
      • 2014-09-08
      • 1970-01-01
      • 2011-08-30
      • 2017-05-05
      相关资源
      最近更新 更多