python - 如何使用 GitPython 标记特定提交

标签 python git gitpython

我创建了一个简单的脚本,它使用 GitPython 标记已 check out 的特定分支上的最新提交。

from git import Repo

def TagRepo(path, tag):
    repo = Repo(path)
    repo.create_tag(tag)
    repo.remotes.origin.push(tag)


if __name__ == "__main__":

    parser = optparse.OptionParser('usage: %prog [options] ')
    parser.add_option('-p', '--path', dest='path', help='path to repo')
    parser.add_option('-t', '--tag', dest='tag', help='Tag label')

    (options, args) = parser.parse_args()

    TagRepo(options.path, options.tag)

我想改进它,以便我可以将特定提交的 SHA 和标记传递给它,而不是分支上的最新提交,但我看不到如何使用 GitPython 做到这一点。

最佳答案

来自 module 的文档:

获取指定版本的提交

    repo.commit('master')
    repo.commit('v0.8.1')
    repo.commit('HEAD~10')

因此,要检索特定的提交,只需使用 repo.commit('SHA-1')

关于python - 如何使用 GitPython 标记特定提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48112931/

相关文章:

git - 制表符到空格 + GIT

git - Jenkins - 无法在子模块路径 'submodule-project' 中找到当前的原始/开发版本

python - 在 git-python 中通过 hexsha 获取 Commit 对象

python - 如何从 gitpython 中的存储库路径获取变量中的 Ostream 或 Oinfo 列表?

python-3.x - Python git 包获取标签并提交

python - numpy.linalg.eig 如何决定返回特征值的顺序?

python - 了解 Python 中的 return [0,size-1][nums[0]<nums[size-1]]

python - 将具有不匹配键的字典列表转储到 csv 文件中

Git - 恢复与一个分支的历史 merge

python - 从YouTube获取标题