如何只 git clone 特定文件或目录

Git 不直接支持从仓库只克隆特定文件或目录。但是,你可以使用 --depth 1 只克隆一个特定修订版(而不是整个历史),并使用 --no-checkout 后跟 git sparse-checkout set 来检出不是整个文件树而只是特定文件。

在以下示例中,我们将从整个 emqx 仓库中只检出 EMQX 配置文件(在 apps/emqx/etc 中):

git_sparse_clone.sh
git clone --depth 1 --branch v5.0.8 --no-checkout https://github.com/emqx/emqx.git
cd emqx
git sparse-checkout set apps/emqx/etc
git checkout v5.0.8

执行此命令后,emqx 文件夹将只包含 .gitapps/emqx/etc

注意你可以多次调用 git sparse-checkout set 以检出多个不同的路径。

此示例改编自此 StackOverflow 帖子


Check out similar posts by category: Git, Version Management