如何使用 GitPython 使用命令(git archive --remote)?根据 GitPython 文档,我们可以直接使用 git。我正在做类似的事情:
git = repo.git git.archive(remote=' http://path ')
但收到错误“异常是:Cmd('git')失败,原因是:退出代码(1)”
我可以查看任何示例以在 python 脚本中执行 git archive --remote 吗?
谢谢
如何使用 GitPython 使用命令(git archive --remote)?根据 GitPython 文档,我们可以直接使用 git。我正在做类似的事情:
git = repo.git git.archive(remote=' http://path ')
但收到错误“异常是:Cmd('git')失败,原因是:退出代码(1)”
我可以查看任何示例以在 python 脚本中执行 git archive --remote 吗?
谢谢
这个问题很老了,但我遇到了同样的问题,所以这是我的解决方案:
import git
import shutil
url = 'ssh://url-to.my/repo.git'
remote_ref = 'master'
tmprepo = 'temprepo'
tarball = 'contents.tar'
try:
repo = git.Repo.init(tmprepo)
repo.create_remote('origin', url)
repo.remote().fetch(remote_ref)
with open(tarball, 'wb') as f:
repo.archive(f, f'remotes/origin/{remote_ref}', path=None)
print('Success')
finally:
shutil.rmtree(tmprepo)
几点注意事项:
path
如果您只想包含目录的子集,请将参数设置为有意义的值fetch()
可以优化调用。函数所**kwargs
采用的可能在这里有所帮助(请参阅man git-fetch
)