2012-07-04 96 views
2

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

+1

这难道不是否定的git完全的地步?通过硬链接,您将编辑主分支中的文件,而不是编辑克隆。 – Polynomial

+0

你读过'git help clone'吗?这实际上是默认行为。 –

+0

当然,我做到了)但git clone -l do'.git/objects /目录下的文件被硬链接以尽可能节省空间。' 。但我需要硬链接所有文件。 – Nikita

回答

8

一个Git仓库制成,通过简化,文件的3种:

  1. 数据库状物体$GIT_DIR/objects):这些目的是从未修改,一些可加入,有些可以被删除,但是这些文件永远不会被修改。这意味着它们在许多克隆之间可以完全相同。

  2. 特定存储库的配置和状态$GIT_DIR):这些文件中包含特定于存储库($GIT_DIR/info/*例如)配置。他们还存储库状态,像什么是已知的分支,什么是签出的分支,等他们不能仓库之间共享,或者这将是针对设计

  3. 工作拷贝文件或源:这些文件大部分的源代码,他们是为了从一个仓库到另一个不同的时间。它们很灵活,变化很大(或者是因为你编码很多,或者因为你改变了很多分支,或者两者都有)。

由于事实上,唯一不改变,不库特定的文件对象文件。如果可能的话,它们会自动通过Git强制链接(即使没有指定-l)。

如果你想在同一驱动器上的两个仓库有完全相同的状态和文件,那么你绝对应该做的符号链接。但是你不能硬连接配置文件和工作拷贝文件,因为它们变化太大,特定于存储库。