2

我有一个本地 git 存储库。我想通过硬链接文件在本地机器上克隆它以节省磁盘空间。我该怎么做?

4

1 回答 1

9

通过简化,Git 存储库由3 种文件组成

  1. 类数据库对象$GIT_DIR/objects):这些对象永远不会被修改,有些可以添加,有些可以删除,但文件永远不会修改。这意味着它们可以在许多克隆之间完全相同。

  2. 特定于存储库的配置和状态($GIT_DIR):这些文件包含特定于存储库的配置($GIT_DIR/info/*例如)。它们还存储存储库状态,例如已知分支是什么,签出分支是什么等。它们不能在存储库之间共享,否则会违反设计

  3. 工作副本文件,或源代码:这些文件大部分时间是您的源代码,它们意味着从一个存储库到另一个存储库是不同的。它们很灵活并且变化很大(因为您编写了很多代码,或者因为您经常切换分支,或者两者兼而有之)。

事实上,唯一不变的、不是特定于存储库的文件是目标文件。如果可能,这些会由 Git 自动硬链接(即使没有指定-l)。

如果您希望同一驱动器上的两个存储库具有完全相同的状态和文件,那么您绝对应该建立一个符号链接。但是您不能硬链接配置和工作副本文件,因为它们更改太多并且特定于存储库。

于 2012-07-05T06:54:39.723 回答