gitclone指定文件夹

Git Sparse Checkout

Git Sparse Checkout 是一个允许你只检出部分仓库内容的功能。这在你需要仓库的某一部分时非常有用,比如一个大型仓库,但你只需要其中的一小部分。

用法
  1. 启用 Sparse Checkout:
1
git config core.sparsecheckout true
  1. 定义要检出的文件/文件夹列表:
1
2
3
Copy code
echo "path/to/directory/" >> .git/info/sparse-checkout
echo "path/to/file.txt" >> .git/info/sparse-checkout

你可以通过编辑 .git/info/sparse-checkout 文件来指定要检出的路径。每一行都是一个相对于仓库根目录的路径。

  1. 更新工作区:
1
2
git checkout master
这个命令将会根据 .git/info/sparse-checkout 文件中指定的路径,更新你的工作目录,只包括这些路径下的文件/文件夹。
示例

假设你有一个包含以下内容的仓库:

1
2
3
4
5
6
7
8
9
10
11
12
Copy code
project/
├── src/
│ ├── module1/
│ │ └── file1.txt
│ ├── module2/
│ │ └── file2.txt
│ └── module3/
│ └── file3.txt
└── docs/
├── doc1.txt
└── doc2.txt

如果你只需要 src/module1/ 目录和 docs/doc1.txt 文件,你可以这样设置 Sparse Checkout:

1
2
3
4
git config core.sparsecheckout true
echo "src/module1/" >> .git/info/sparse-checkout
echo "docs/doc1.txt" >> .git/info/sparse-checkout
git checkout master

然后你的工作目录将只包含 src/module1/ 目录和 docs/doc1.txt 文件。

使用Sparse Checkout可以帮助你只聚焦于项目中特定的文件或目录,减少不必要的文件或目录对工作的干扰,提高效率。