gpt4 book ai didi

python - 相当于gitpython中的 "git tag --contains"

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:10 24 4
gpt4 key购买 nike

我正在努力实现git tag --contains <commit>在 gitpython 中。谁能指出我的文档。我找到了获取所有标签的文档,但不包含包含特定提交的标签。

最佳答案

2019 年更新:如 Anentropic评论中提到,您可以使用 GitPython “shell out”命令,就像运行 git cli 一样。例如,在本例中,您将使用 repo.git.tag("--contains", "<commit>").split("\n") .

<小时/>

由于这些限制,我已经放弃了 GitPython。令人恼火的是,它不太像 git。这个简单的类负责 git 的所有事情(除了新存储库的初始化和身份验证):

class PyGit:
def __init__(self, repo_directory):
self.repo_directory = repo_directory
git_check = subprocess.check_output(['git', 'rev-parse', '--git-dir'],
cwd=self.repo_directory).split("\n")[0]
if git_check != '.git':
raise Exception("Invalid git repo directory: '{}'.\n"
"repo_directory must be a root repo directory "
"of git project.".format(self.repo_directory))

def __call__(self, *args, **kwargs):
return self._git(args[0])

def _git(self, *args):
arguments = ["git"] + [arg for arg in args]
return subprocess.check_output(arguments, cwd=self.repo_directory).split("\n")

现在你可以在 git 中做任何能做的事情了:

>>> git = PyGit("/path/to/repo/")

>>> git("checkout", "master")
["Switched to branch 'master'",
"Your branch is up-to-date with 'origin/master'."]

>>> git("checkout", "develop")
["Switched to branch 'develop'",
"Your branch is up-to-date with 'origin/develop'."]

>>> git("describe", "--tags")
["1.4.0-rev23"]

>>> git("tag", "--contains", "ex4m9le*c00m1t*h4Sh")
["1.4.0-rev23", "MY-SECOND-TAG-rev1"]

关于python - 相当于gitpython中的 "git tag --contains",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com