Logo
Section 1 / 6

.git 文件夹与快照链接

了解 Git 背后的工作原理。

导入

.git 文件夹与快照链接

了解 Git 背后的工作原理。

在本章中,我们将学习以下内容:

  • 学习 Git 如何管理快照。
  • 学习 Git 如何管理分支指针。
  • 学习跟踪变更的三个阶段。

我们首先了解 Git 快照的工作原理。

.git 文件夹

当我们在这个文件夹中运行 git init 命令时,Git 会在项目目录中创建一个 .git 文件夹。该文件夹包含了 Git 用于维护仓库所需的所有内容。

注意: 请不要手动修改此文件夹中的任何文件,它由 Git 软件自动管理。

删除项目中的完整 Git 版本历史

如果想要删除项目的完整 Git 版本历史,可以使用 rm 命令配合 -f 和 -r 选项来递归删除整个 .git 文件夹:

1$ rm -fr .git

如果这个项目文件夹是唯一包含 .git 文件夹的副本,那么版本历史将永久丢失。另一方面,如果我们有项目的备份或远程仓库,仍然可以恢复历史记录。

复制带版本历史的项目文件夹

如果需要克隆项目文件夹并保留版本历史,可以直接复制包含 .git 文件夹的项目文件夹。如果选择复制项目文件夹内的文件和子文件夹,则必须同时复制隐藏的 .git 文件夹。在下面的终端中尝试执行以下命令:

1$ git init 2$ ls -a 3$ cd .git 4$ ls -a

通过 cd .git 进入 .git 文件夹,然后再次使用 ls -a 命令查看该文件夹内部的文件。

Terminal

快照链接

当我们提交更改到快照时,Git 会保存差异(稍后详细介绍 git diff 命令)。每个快照都指向其父级快照。分支指针指向每条链表的最后一个提交。给定任意一个快照,Git 都能追溯变化回到根节点——即第一个快照。Git 可以通过应用从根快照开始的 diff 补丁来重建文件。我们可以预见,这种设计非常适合源代码和纯文本文件,因为它使用文本补丁来记录版本变化。然而,如果对二进制文件(如 .psd 格式文件)进行版本控制,则每次提交都需要存储完整的文件。

基本命令

提交哈希