如何从git仓库里拉取需要的部分目录和文件呢(含shell脚本)?

如何从仓库里拉取指定的部分目录和文件呢?本文教你如何使用git的Sparse Checkout模式:

  1. git config --global core.sparsecheckout true 启用Sparse Checkout模式;
  2. 先用git init创建个空白的本地仓库;
  3. 再使用git remote add origin 添加远程仓库;
  4. 在.git/info/sparse-checkout文件里指定需要的部分文件或文件夹,一行表示一项;
  5. git pull origin master 以正常的命令拉取即可。
#/bin/bash

SUB_PATH="mycode"
REMOTE_URL=git@172.16.xx.xxx:mycode/test.git
CHECKOUT_LIST=".gitignore  tempdir1  tempdir2  filename1  filename2"
#新建存放代码的目录
if [ ! -d ${SUB_PATH} ]; then
	mkdir ${SUB_PATH}
fi
cd "${SUB_PATH}"
#启用Sparse Checkout模式
git config --global core.sparseCheckout true
#判断本地仓库是否存在
if [ ! -d ".git" ]; then
    git init	#不存在,先用git init创建个空白的本地仓库
    git remote add origin "${REMOTE_URL}"	#添加远程仓库
    for i in ${CHECKOUT_LIST}; do
        echo ${i} >> ".git/info/sparse-checkout"	#在.git/info/sparse-checkout文件里指定需要的部分文件或文件夹
    done
else	#本地仓库存在,修改.git/info/sparse-checkout文件
    for i in ${CHECKOUT_LIST}; do
        if [ `grep -c ${i} ".git/info/sparse-checkout"` -eq '0' ]; then	#判断之前是否已经写入该文件或目录,grep -c 返回一个文件中字符串的个数
            echo ${i} >> ".git/info/sparse-checkout"
        fi
    done
fi

# git fetch
# git reset --hard origin/master
git pull origin master		#拉取代码
#end
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值