1. 背景描述:
当一次git push文件的大小过大的时候,例如超过100M, 会遇到问题。这个时候可以通过分卷压缩的方式将其压缩为一个一个100m的小文件。
分卷压缩的指令如下所示:
tar zcf - xxx |split -d -b 100m - xxx.tar.gz.
对应的,解压的操作如下所示:
cat xxx.tar.gz* | tar zx
但如果原本是一个1G的文件,就会分卷为10个文件。这样就需要执行10次:
git add, git commit, git push。下文会通过gitpython这一个包,来实现git操作的自动化执行。
2. 方案
具体脚本如下:
from git import Repo
import os
import glob
#dirfile = os.path.abspath('.')
repo = Repo('.')
l = glob.glob(r'merge.z*')
for it in l:
repo.index.add(items=[it])
repo.index.commit('add {}'.format(it))
origin = repo.remote("origin")
origin.push()
3. 补充说明
1. 上述脚本的执行需要先安装python 包gitpython。
pip install gitpython
2. 在实际操作的过程中可能还会遇到需要频繁输入git用户名和密码的问题,可以通过以下配置方式解决:
git config --global credential.helper store