Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 什么是吉特;快照;?_Git - Fatal编程技术网

Git 什么是吉特;快照;?

Git 什么是吉特;快照;?,git,Git,说: $git差异测试 这将显示当前工作目录与“测试”分支上的快照之间的区别 作为一个新手,这是非常令人困惑的。我从没听说过快照这个词。它们是指“测试”分支的“头”吗?快照是某个特定时间点上某个对象(例如文件夹)的状态。在这种情况下,snapshot表示测试分支的当前内容,它不必是head版本。首先,这不是正式的git文档。这是一本由社区撰写的书。虽然它可能相当权威,但它不是福音 AFAIK,“快照”在git中没有任何正式含义。当然,政府没有提到这一点。在给定的上下文中,它可能是一个非正式的参考

说:

$git差异测试

这将显示当前工作目录与“测试”分支上的快照之间的区别


作为一个新手,这是非常令人困惑的。我从没听说过快照这个词。它们是指“测试”分支的“头”吗?

快照是某个特定时间点上某个对象(例如文件夹)的状态。在这种情况下,snapshot表示测试分支的当前内容,它不必是head版本。

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


AFAIK,“快照”在git中没有任何正式含义。当然,政府没有提到这一点。在给定的上下文中,它可能是一个非正式的参考,指如何在书中的示例中使用“测试”分支,即作为正在进行的工作的快照,用于测试目的。

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

它是“修订”的替代术语。在其他版本控制系统中,跟踪对单个文件的更改并将其称为修订,但使用git跟踪整个工作区,因此它们使用术语快照来表示差异

我们可能会编写一个工具来存储项目的快照,而不必每次都复制整个目录,而不是编写一个工具来分别对每个文件进行版本设置,比如Subversion

这本质上就是Git。您告诉Git您想用Git commit命令保存项目的快照,它基本上会记录项目中所有文件的清单。然后,大多数命令与这些清单一起工作,以查看它们之间的差异或从中提取内容,等等

如果您认为Git是一种用于存储、比较和合并项目快照的工具,那么您可能更容易理解正在发生的事情以及如何正确地处理事情


我的理解是,快照通常只是git用来存储数据的“实体”。例如,与像SVN那样将其数据存储为一系列“增量”/“变更集”不同,您对git所做的每一次提交都会创建一个“提交对象”,该对象引用代码在该时间点的快照


因此,正如@Femaref所说,它是特定时间的代码状态,并不一定意味着它是测试分支的负责人,但可能在您看到的示例中。

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

  • 通过拍摄索引的快照来创建新的提交
  • 提交是在给定时间的repo快照

  • 快照是存储库的一部分,就像截图是视频一样

    它是存储库中某个时间点的内容(文件和文件夹)


    当您提交时,您将存储库的当前工作目录保存为新的快照(提交=快照+元数据)。您的Git存储库由一系列的快照组成(提交),其他VCS则由一系列差异组成。

    根据发布的其他定义:

    快照是以清单的形式表示跟踪文件的当前状态,可以将其与其他清单进行比较,以查看差异所在

    Git仅从跟踪清单的第一刻起跟踪清单之间的差异。如果自第一次快照后文件未更改,则所有后续快照都将引用第一次快照。如果文件已更改,所有后续快照将引用具有最新更改的快照。git存储的实际上是从最后一个快照到第一个快照的链接历史。分支基本上是时间线中的一个拆分,允许从主链上的特定快照中生成备用的快照历史链


    分支通常用于功能,这些功能在某些时候可能会合并到主分支中。如果没有合并的意图,而是与原始项目的分歧,以项目自身历史的新的、完全独立的副本的形式出现,它通常被称为硬叉,指的是“道路上的一个叉”。为了解释术语
    快照
    清晰。 请允许我介绍另外两件事

  • git松散对象格式
  • git包装文件
  • 假设我们有一个名为“a.txt”的文件,其内容是git控制下的十个“a”字母。 提交此文件后,它将在.git/objects路径下创建三个文件夹,每个文件夹有一个文件。每个文件都是S.N.A.P.S.H.O.T

    每个文件夹都有一个文件

    现在我们编辑a.txt文件,看看会发生什么

    我们将第一个字母“a”改为字母“b”

    -->>

    然后承诺

    Git在三个新文件夹下创建了另外三个新文件

    这三个新文件也是S.N.A.p.S.H.O.Ts

    每次提交时,git都会将快照保存到磁盘,而不是相同文件的新版本到旧版本之间的增量。即使我们只是更改了一个文件中的一个字母,git也会将整个文件保存为一个快照

    这也称为松散对象格式

    在这种情况下,git将比其他vcs(如subversion)花费更多的磁盘空间,从而节省同一文件的新版本到旧版本之间的增量。但是使用
    快照
    的好处是缩短了
    提交
    阶段的时间

    但是brilliant git会在这之后不时地做另一项工作,创建包文件并删除包含