什么是git“快照”?

官方的Git文档说:

$ git diff test

这将显示你当前的工作目录和'test'分支上的快照有什么不同

作为一个新手这是非常混乱。 我从来没有听说过快照这个词。 他们是否指“testing”分支的“头”?

快照是特定时间点(如文件夹)的状态。 在这种情况下,快照意味着testing分支的当前内容,这不一定是头版本。

术语快照也用在git参考站点中

这是“修订”的replace术语。 在其他版本控制系统中,对单个文件的更改将被跟踪并引用为修订版本,但对于git,您正在跟踪整个工作空间,因此他们使用快照术语来表示差异。

http://gitref.org/index.html

而不是像Subversion那样编写一个单独版本的工具,我们可能会编写一个能让我们的项目快照更容易存储的工具,而不必每次都复制整个目录。

这基本上是Git是什么。 你告诉Git你想用git commit命令保存项目的快照,它基本上logging了项目中所有文件的外观。 然后,大多数命令与这些清单一起工作,看看它们是如何不同或者将内容从中拉出来等等。

如果您将Git看作是存储和比较项目快照的工具,那么可能会更容易理解正在发生的事情以及如何正确执行操作。

首先,这不是官方的git文档。 这是一本由社区撰写的书。 虽然这可能是相当权威的,但这不是福音。

AFAIK,“快照”在git中没有任何forms的含义。 当然, git diff的手册没有提到它。 在给定的上下文中,它可能是一个非正式的参考,如何在本书的例子中使用“testing”分支,也就是作为正在进行的工作的快照,用于testing目的。

我的理解是,快照总的来说就是git用来存储数据的“实体”。 相对于像SVN那样将数据存储为一系列“deltas”/变更集,例如,您对git所做的每个提交都会创build一个“提交对象”,该提交对象引用了该时间点代码的快照。

正如@Femaref所说,它是在特定时间的代码状态,并不一定意味着它是testing分支的头部,但可以在你看到的例子。

快照是一个存储库,截图是一个video。

Git仓库由一系列快照组成 ,这些快照是一系列由Git 树对象表示的文件和文件夹,存储在仓库的.git文件夹中。 commit ,将当前工作目录存储为新的快照提交 )。

以下是使用术语“ 快照”的一些上下文:

  1. 索引的快照创build了一个新的提交。
  2. 提交是在特定时间回购的快照。