如何使用GitPython标记特定提交

2024-06-07 01:05:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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来实现这一点。在


Tags: path标记addparsertag分支helpargs
2条回答

源代码:

def create_tag(self, path, ref='HEAD', message=None, force=False, **kwargs)

您似乎可以传递ref to create_标记,下面的注释如下所示:

:param ref: A reference to the object you want to tag. It can be a commit, tree or blob.

所以只要得到你想要的承诺,并作为裁判传给他。不要像OP那样推。在

根据module的文档:

在指定的修订中获取提交

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

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

相关问题 更多 >