使用GitPython模块获取远程HEAD分支

时间:2012-06-12 06:41:40

标签: python git gitpython

我试图使用GitPython编写一些Python脚本,我可以用它来简化我的日常任务,因为我管理了许多分支。

在编写复杂的脚本时,我对Python也很陌生。

这是我使用的API:GitPython API doc

我想在GitPython中编写它,它只是执行以下操作并解析显示HEAD远程分支指向的部分。换句话说,我想基本上得到remotes/origin/HEAD

$ git branch -a
  master
* branch_to_remove
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/testing

我多次浏览API文档,起初我很难理解这些API文档的Python格式,除了{{{I}之外我找不到任何有用的东西。 1}}在remote_head

但我甚至不知道如何打电话/初始化它。

这是我到目前为止所做的,你可以告诉我我想要做什么,只需重置为“没有分支”'陈述并删除我当前的分支:

class git.refs.reference.Reference(repo, path, check_path=True)

非常感谢任何帮助!

感谢。

2 个答案:

答案 0 :(得分:4)

我刚看到你的问题我想知道这个gitPython,看起来真的很好的工具,我在GitPython文档中寻找这个特定的问题没有幸运,但如果你在github上搜索你会看到很多测试并且有一个测试。

当您搜索“删除新分支”时,您会看到类似的内容:

# remove new branch
Head.delete(new_remote_branch.repo, new_remote_branch)

GitPython Reference

答案 1 :(得分:4)

打印当前分支:

print(repo.head.ref)

列出分支

print [str(b) for b in repo.heads]

结帐分行

repo.heads[branch].checkout()

repo.git.checkout(branch)

如果您要删除分支,则需要使用不同的LOCAL分支,您可以通过多种方式进行分支

repo.heads['master'].checkout()

repo.git.checkout('master')repo.git.checkout('remotes/origin/master')

希望这有帮助