0

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

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

  1. 您修改工作目录中的文件。
  2. 您暂存文件,将它们的快照添加到暂存区域。
  3. 你做一个提交,它把文件放在暂存区域,并将快照永久存储到你的 Git 目录中。
4

2 回答 2

0

我认为文档非常糟糕。

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

于 2013-09-30T23:33:25.163 回答
0

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

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

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

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

于 2013-09-30T11:07:37.103 回答