Git 快照,它们是如何工作的



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

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

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

git commit 对象本质上是你所说的快照。

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

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

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

我认为文档非常糟糕。

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

相关内容

  • 没有找到相关文章

最新更新