0%

Git 使用 sparsecheckout 检出指定目录

反馈请联系hertz@hertzwang.com,谢谢

前言:该文参考git下载克隆部分文件代码的方法

使用命令

mkdir finder # 新建目标文件夹
cd finder # 进入文件夹
git init # 初始化 git 文件夹
git remote add -f origin GitAddress # 添加远程仓库
git config core.sparsecheckout true # 使用 sparsecheckout
echo "objectPath" >> .git/info/sparse-checkout # 设置checkout的目录,可设置多个目录
git checkout master # checkout

python脚本

# -*- coding: utf-8 -*-
import os

#  Version 0.1.0
#
## 使用说明:
## 1.设置文件目录,默认为当前目录
## 2.设置查出的目录
## 3.设置Git仓库地址
## 4.设置Git分支,默认为 master

#=============(自定义区)=============

# 设置文件目录,默认为当前目录
finder_base = "./sparsecheckout0.1.0"
# 设置查出的目录
finder_checkout_paths = ["Project1", "Project3"]
# 设置Git仓库地址
git_address = "https://gitee.com/HertzWang/GitSparseCheckout.git"
# 设置Git分支,默认为 master
git_branch = "master"

#====================================

# 查检本地目录
def check_finder():
    print ('校验目录开始...')
    if os.path.exists(finder_base):
        os.system('rm -rf %s' % finder_base)
    os.system('mkdir %s' % finder_base)
    os.chdir(finder_base)
    print ('校验目录完成')

# 设置 Git
def git_setting():
    print ('开始设置 Git')
    os.system('git init')
    os.system('git remote add -f origin %s' % git_address)
    os.system('git config core.sparsecheckout true')
    for path in finder_checkout_paths:
        os.system('echo %s >> .git/info/sparse-checkout' % path)
    os.system('cat .git/info/sparse-checkout')
    print ('Git 设置完成')

# 检出
def git_checkout():
    os.system('git checkout %s' % git_branch)
    os.system('open .')

def main():
    # 查检本地目录
    check_finder()
    # 设置 Git
    git_setting()
    # 检出
    git_checkout()

main()