Git 的稀疏检出(Sparse checkout)功能

Aug 19, 2022 • 预计阅读时间 1 分钟

Git clone 默认是完整检出整个仓库,如果只想检出某一部分文件或者目录,就需要用到稀疏检出功能(Sparse checkout)。

举个例子,我只对 Telegram iOS 源码中的 SSignal 子模块感兴趣,想单独对它检出(Checkout)。

  1. 创建一个空目录,例如名称为 SSignalKit:

    mkdir SSignalKit
    cd SSignalKit
    
  2. 初始化为 Git 仓库,并添加远端仓库地址:

    git init
    git remote add origin https://github.com/TelegramMessenger/Telegram-iOS.git
    
  3. 配置本地仓库为稀疏检出模式:

    git config core.sparsecheckout true
    
  4. 添加要检出的目录或者文件路径到 .git/info/sparse-checkout,每个文件或者目录的路径单独一行:

    echo "submodules/SSignalKit/*" >> .git/info/sparse-checkout
    
  5. 拉取远端代码:

    git pull origin master
    

如果 .git/info/sparse-checkout 文件有更改,那么需要执行 git checkout 应用变更。

Git
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

C++ 中使用 RAII 的注意事项

Swift 中的闭包(Closure)