Git 如何跟踪操作系统上的文件更改信息?

问题描述 投票:0回答:1

Git 文档 说:

Git 中的所有内容在存储之前都会进行校验和,然后再存储 由该校验和引用。这意味着不可能改变 任何文件或目录的内容,而 Git 不知道。

根据我的理解,上述只能通过在用户和操作系统之间引入一个步骤来保存文件来完成,即在Git存储库中的文件被保存之前,它的校验和被Git创建并保存为跟踪信息,然后仅保存操作控制返回给操作系统并保存文件。我进行了搜索,但没有找到任何有关幕后活动的段落。有任何描述、指针、链接吗?

git checksum
1个回答
0
投票

要回答你的问题,我会分两步:

  1. 当您
    git init
    时,它会创建一个名为.git的文件夹。
  2. 此文件夹跟踪该目录内的所有文件和文件夹,除了您明确忽略的文件和文件夹 - 这些文件保存到 .gitignore 文件中。

每当您对文件进行任何更改时,这些更改都会直接对工作目录进行。操作系统对 git 系统一无所知,也不知道是否存在。

而且 git 还维护 Blob 结构,因此它会检查您将要提交的最新更改与现有更改,并检查先前和当前工作目录之间的差异。

您可以在这里找到有关内部结构的更深入的讲座。

© www.soinside.com 2019 - 2024. All rights reserved.