使用gitpython扩展两个分支的提交消息

时间:2016-10-04 13:50:54

标签: python git-commit git-log gitpython

在工作中,我们有一个工作流程,每个分支都被命名为#34;按日期。在本周,至少一次,最新的分支机构被推向生产。我们现在需要的是通过gitpython在生产中的最新分支与新分支之间进行更改的摘要/提交消息。

我试图做的事情:

import git

g = git.Git("pathToRepo")
r = git.Repo("pathToRepo")
g.pull() # get latest

b1commits = r.git.log("branch1")
b2commits = r.git.log("branch2")

这给了我两个分支的所有提交历史记录,但我无法弄清楚如何比较它们以获取最新的提交消息。

这可以在gitPython中做到吗?或者有更好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

我明白了:

import git

g = git.Git(repoPath+repoName)
g.pull()
commitMessages = g.log('%s..%s' % (oldBranch, newBranch), '--pretty=format:%ad %an - %s', '--abbrev-commit')

通过Git文档阅读,我发现我可以用这种语法B1..B2比较两个分支。我尝试使用gitpython并且它有效,其他参数用于自定义格式。

答案 1 :(得分:0)

def get_commit_from_range(start_commit, end_commit):
    repo = git.Repo(xxx)
    commit_range = "%s...%s" % (start_commit, end_commit)
    result = repo.iter_commits(commit_range)
    for commit in result:
       print(commit.message)

通过使用GitPython,对我来说很好。