python - gitpython 创建 zip 存档

标签 python git gitpython

我如何使用 gitpython 创建存档,我尝试了以下创建文件的方法,但我无法打开它它告诉我读取存档时发生错误存档似乎无效或已损坏

from git import *
repo = Repo(repo_path)
assert repo.bare == False
repo.archive(open("repo.tar",'w'))

我想创建一个 zip 文件,所以我尝试了这个,但在这里它创建了一个空的 zip 文件( repo 的路径是正确的,因为当我使用 repo.clone 时它​​会克隆所有内容)

repo.archive(open("repo.zip",'w'), format="zip") 

最佳答案

您需要以二进制方式打开文件(将 b 添加到 mode 参数)并在完成后将其关闭。对您的示例进行以下修改使其正常工作:

from git import Repo

repo = Repo(repo_path)
assert not repo.bare
with open('repo.zip', 'wb') as archive_file:
    repo.archive(archive_file, format='zip')

关于python - gitpython 创建 zip 存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337018/

相关文章:

javascript - 跳过 "npm version"命令中的预提交 Hook

git - 将 .gitignore 转换为 rsync merge 过滤器包含文件? (使用 sed 或 awk)

python - 无法使用 gitpython 创建/添加新分支到 git repo

git - 无法推送到 GitHub,因为我已经删除了大文件

python - 是否有 git Shortlog 的 python 接口(interface)?

python - gitpython 返回 'git push --porcelain origin' 并返回退出代码 128

python - pandas.core.groupby.DataFrameGroupBy.idxmin() 非常慢,如何使我的代码更快?

python - 从网络服务器连接到树莓派

python - 为什么要使用三个迁移命令才能成功迁移数据库?

c++ - OpenCV 的 Python 或 C++ 编码之间的性能是否不同?