【问题标题】:Git : How to Create local repo with symbolic links to the Git main repoGit:如何使用指向 Git 主仓库的符号链接创建本地仓库
【发布时间】:2011-08-25 08:17:20
【问题描述】:

我想创建一个 Git 存储库,其中用户只能从 Git 存储库中拉取文件,而永远不能推入其中。由于不需要修改克隆到远程仓库的数据,我正在考虑创建指向主仓库的软链接以节省空间(数据将在许多用户之间重复)。

当我进行 Git 克隆时,我可以在本地存储库中创建指向远程存储库中文件的软链接吗?

例如git clone <path>/gitrepo . 有一些变化

... 其中gitrepo 是主目录,并且该命令应该创建我的本地 git 存储库,其中包含指向 gitrepo 的符号链接。应该维护版本控制。在我执行 git pull 之前,我的本地存储库应该得到维护,即使主 gitrepo 已经向前移动。 git pull 应该重新创建符号链接以指向最新的主仓库。

我正在寻求用“版本控制ln -s”替换ln -s

谢谢, RB

【问题讨论】:

    标签: git


    【解决方案1】:

    在本地克隆时,Git 会自动执行此操作。来自git clone的手册页:

    --local, -l

    当要克隆的存储库位于本地计算机上时, 此标志绕过正常的“git 感知”传输机制,并且 通过复制HEAD 和下面的所有内容来克隆存储库 objects 和 refs 目录。 .git/objects/directory 下的文件被硬链接以尽可能节省空间。这是现在 使用/path/to/repo 指定源存储库时的默认值 语法,所以它本质上是一个无操作选项。强制复制 而不是硬链接(如果您尝试这样做,这可能是可取的 备份您的存储库),但仍然避免使用通常的“git 知道”传输机制,可以使用--no-hardlinks

    另一个有趣的标志可能是-s

    --shared, -s

    当要克隆的存储库在本地机器上时, 而不是使用硬链接,自动设置 .git/objects/info/alternates 与源存储库共享对象。这 生成的存储库开始时没有任何自己的对象。

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多