使用git-python从仓库获取提交信息

3 投票
4 回答
14081 浏览
提问于 2025-04-16 22:10

我正在写一段代码,想从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

撰写回答