对除子目录列表之外的所有内容执行git稀疏签出

  • 本文关键字:git 执行 列表 子目录 git
  • 更新时间 :
  • 英文 :


我有以下(单(回购结构

└── dir1
├── subdir1
│   ├── subdir1a
│   ├── subdir1b
│   └── subdir1c
└── subdir2
├── subdir2a
├── subdir2b
├── subdir2c
└── dir2
└── dir3

我想签出除(例如(subdir1bsubdir1c之外的所有

有没有一种方法可以对所有执行稀疏检查,除了一些子目录?

询问是因为也许(如果有这样的解决方案(更容易向git说明你做了什么不想结账,而不是开始列出所有要结账的东西。

假设您使用的是Git 2.25+git sparse-checkout命令,我刚刚测试了:

C:Usersvoncgit>git clone --filter=blob:none --no-checkout https://github.com/git/git git2
Cloning into 'git2'...
remote: Enumerating objects: 200317, done.
remote: Total 200317 (delta 0), reused 0 (delta 0), pack-reused 200317
Receiving objects: 100% (200317/200317), 74.10 MiB | 26.40 MiB/s, done.
Resolving deltas: 100% (127965/127965), done.
C:Usersvoncgit>cd git2
C:Usersvoncgitgit2>git sparse-checkout init
C:Usersvoncgitgit2>git read-tree -mu HEAD
remote: Enumerating objects: 459, done.
remote: Counting objects: 100% (392/392), done.
remote: Compressing objects: 100% (392/392), done.
remote: Total 459 (delta 0), reused 0 (delta 0), pack-reused 67
Receiving objects: 100% (459/459), 1.88 MiB | 9.14 MiB/s, done.

结果是一个没有子文件夹的存储库。

让我们开始添加除Documentationtechnical之外的所有子文件夹

# edit .gitinfosparse-checkout
/*
!/Documentation/technical/
# ... Add your other excluded folders
C:Usersvoncgitgit2>git sparse-checkout reapply

最终结果是所有git/git存储库,没有Documentation/technical/

最新更新