Git - 仅克隆存储库的一部分并仅获取该部分的拉取?

And*_*ius 4 git git-clone

假设我有两个具有特定模块(或子目录)的存储库,如下所示:

repo1/
  /module1
  /module2
  /module3


repo2/
  /module4
  /module5
Run Code Online (Sandbox Code Playgroud)

因此,在我的测试服务器上,我按原样加载这些存储库,而且没问题,因为我获得了所有代码。但是在客户端服务器上,假设我只需要他的项目模块(假设是)repo2,而且还需要上一个项目的一个模块(即)repo1

有没有一种方法可以让我从repo1only进行克隆module1,然后如果我要更新repo1中更改的任何内容module1,当我执行pullfor repo1(仅克隆部分存储库)时,它会更新它?

更新 所以在客户端服务器上会有两个像这样的存储库:

repo1/
  /module1

repo2/
  /module4
  /module5
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 5

您可以对每个存储库进行稀疏结账

mkdir repo1
cd myrepo1
git init
git config core.sparseCheckout true
git remote add -f origin /url/of/repo1
echo module1/*> .git/info/sparse-checkout
git fetch
git checkout master
Run Code Online (Sandbox Code Playgroud)

(与 repo2 相同)