首页 > 解决方案 > git sparse-checkout 的奇怪行为

问题描述

我有一个名为git@github.com:MyOrg/my-repo.git

它的根目录中有几个文件夹。

我只想获取其中一个,名为datadog.

我正在运行以下命令

$ g clone --no-checkout --depth=1 git@github.com:MyOrg/my-repo.git
Cloning into 'my-repo'
...
...
...

$ cd my-repo

$ git sparse-checkout init

$ git sparse-checkout set datadog

$ ls -al
total 0
drwxr-xr-x   3 pantelis  wheel    96B Oct  8 12:39 .
drwxrwxrwt  37 root      wheel   1.2K Oct  8 12:39 ..
drwxr-xr-x  13 pantelis  wheel   416B Oct  8 12:41 .git

$ g sparse-checkout list
datadog

$ g checkout master
Already on 'master'
Your branch is up to date with 'origin/master'.

$ ls -al
total 0
drwxr-xr-x   5 pantelis  wheel   160B Oct  8 12:41 .
drwxrwxrwt  37 root      wheel   1.2K Oct  8 12:39 ..
drwxr-xr-x  14 pantelis  wheel   448B Oct  8 12:41 .git
drwxr-xr-x   9 pantelis  wheel   288B Oct  8 12:41 datadog
drwxr-xr-x   4 pantelis  wheel   128B Oct  8 12:41 terragrunt

那个terragrunt目录是从哪里来的?我知道它在我的回购的根目录中,为什么它被添加到我的sparse-checkout

更新:如果我--cone在初始化时使用该选项,sparse-checkout它确实只会添加datadog文件夹,还会添加所有其他根文件(README.mdLICENSE.md),这也不是所需的行为。

标签: gitmacossparse-checkout

解决方案


推荐阅读