Git Snapshots,它们是如何工作的?

时间:2013-09-30 10:41:33

标签: git version-control git-commit

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

基本的Git工作流程如下:(取自git文档)

  1. 您可以修改工作目录中的文件。
  2. 您暂存文件,将它们的快照添加到暂存区域。
  3. 您执行提交,该文件将文件保存在暂存区域中,并将该快照永久存储到您的Git目录中。

2 个答案:

答案 0 :(得分:0)

git commit objects本质上是您正在谈论的快照。

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

你总是可以通过签出提交来回滚整个树的状态:git checkout commit_id - 它几乎就像时间机器。

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

答案 1 :(得分:0)

我认为文档非常糟糕。

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