我有一个本地git存储库。我想通过硬链接文件在本地计算机上克隆它以节省磁盘空间。我该怎么办?
答案 0 :(得分:8)
通过简化,Git存储库是 3种文件:
类似数据库的对象 ($GIT_DIR/objects
):永远不会修改这些对象,有些可以添加,有些可以删除,但是永远不会修改文件。这意味着它们在许多克隆之间可以完全相同。
特定于存储库的配置和状态 ($GIT_DIR
):这些文件包含特定于存储库的配置(例如$GIT_DIR/info/*
)。它们还存储存储库状态,例如什么是已知分支,什么是签出分支等。它们不能在存储库之间共享,或者不符合设计
工作副本文件或来源 :这些文件大部分时间都是您的源代码,它们是从一个存储库到另一个存储库的不同。它们很灵活并且变化很大(或者因为你编写了很多代码,或者因为你经常切换分支,或者两者兼而有之)。
事实上,唯一不变的,而不是特定于存储库的文件是对象文件。如果可能的话,Git会自动将这些链接硬链接(即使没有指定-l
)。
如果您希望同一驱动器上的两个存储库具有完全相同的状态和文件,那么您绝对应该创建一个符号链接。但是你不能硬配置配置文件和工作副本文件,因为它们变化太大而且特定于存储库。