使用git-python从仓库获取提交信息
我正在写一段代码,想从GitHub上的一个仓库中获取提交记录。可是我不太确定该怎么做。我有使用git-python这个工具,但大部分的接口都是用来打开同一文件系统上的本地git仓库的。
有人能给我点建议吗?
谢谢!
4 个回答
1
我真的建议你只使用命令行的 git。git-python 是用来做一些宏或者复杂操作的,不只是用来拉取、推送或者克隆代码的 :)
21
对我来说,下面的内容效果最好:
导入的内容:
import os
import datetime
import git
获取当前的代码库,假设你已经在里面:
repo = git.Repo(os.getcwd())
获取当前活跃的分支:
master = repo.head.reference
当前分支:
master.name
最新的提交ID:
master.commit.hexsha
最新的提交信息:
master.commit.message
最新的提交日期:
datetime.datetime.fromtimestamp(master.commit.committed_date)
最新提交作者的邮箱:
master.commit.author.email
最新提交作者的名字:
master.commit.author.name
5
这里最简单的方法是使用命令行(我假设你是在Linux或其他Unix系统上,不过在Windows上也应该差不多)来先克隆一个现有的代码库:
你可以输入这个命令:git clone git://github.com/forsberg/misctools.git
这条命令会创建一个叫做 misctools
的文件夹。
接下来,在Python中,你可以打开这个代码库,并使用pull命令来更新它:
#!/usr/bin/env python
from git import *
repo = Repo("misctools")
o = repo.remotes.origin
o.pull()
master = repo.head.reference
print master.log()
所有的操作都有详细的说明,你可以在这个链接找到:http://packages.python.org/GitPython/0.3.2/tutorial.html