如何使用gitpython repo.archive()作为标签

时间:2019-06-15 09:43:50

标签: python git gitpython

我必须导出标签的特定路径。 git命令是git archive <tag> 但是我没有发现用gitpython做到这一点

我尝试过

repo.archive(tar, "<tag>")

没有运气。

1 个答案:

答案 0 :(得分:2)

import git
import os.path

repopath = '/path/to/repo'
repo = git.Repo(repopath)
repo.git.archive('<tag>', '-o', '<tag>.zip')
if os.path.exists('<tag>.zip'):
    pass

您几乎可以将所有git命令转换为repo.git.<cmd>(arg0, arg1, ...)。需要将命令名称中的-替换为_

git log --oneline    ->    output = repo.git.log('--oneline')
git commit --allow-empty -m "foo bar" ->  output = repo.git.commit('--allow-empty', '-m', 'foo bar')
git ls-tree -r -t HEAD -> output = repo.git.ls_tree('-r', '-t', 'HEAD')