首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git log --遵循gitpython的方式

git log --遵循gitpython的方式
EN

Stack Overflow用户
提问于 2012-04-09 20:27:08
回答 2查看 21.6K关注 0票数 39

我正在尝试访问单个文件的提交历史记录,如下所示:

代码语言:javascript
复制
git log --follow -- <filename>

我必须使用gitpython,所以我现在要做的是:

代码语言:javascript
复制
import git 
g = git.Git('repo_dir') 
hexshas = g.log('--pretty=%H','--follow','--',filename).split('\n') 

然后我构建提交对象:

代码语言:javascript
复制
repo = git.Repo('repo_dir')
commits = [repo.rev_parse(c) for c in r]

有没有一种更像gitpython的方式呢?我尝试过commit.iter_parents()commit.iter_items(),但它们都依赖于git-rev-list,所以它们没有--follow选项。

EN

回答 2

Stack Overflow用户

发布于 2013-11-19 20:57:45

例如,

使用范围时间:

代码语言:javascript
复制
g = git.Git("C:/path/to/your/repo") 
loginfo = g.log('--since=2013-09-01','--author=KIM BASINGER','--pretty=tformat:','--numstat')
print loginfo

输出:

代码语言:javascript
复制
3       2       path/in/your/solutions/some_file.cs

您可以看到添加的行、删除的行以及具有这些更改的文件。

票数 17
EN

Stack Overflow用户

发布于 2019-02-08 19:07:15

我建议您使用 (它在内部使用GitPython )。更易于使用:

代码语言:javascript
复制
for commit in RepositoryMining("path_to_repo", filepath="here_the_file").traverse_commits():
    # here you have the commit object
    print(commit.hash)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10073154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档