如何在python中构造git diff查询

Leo*_*ldo 1 python git

我正在使用推荐的GitPython模块,但无法弄清楚如何构建以下命令:

git diff --name-status ec04352 b945e6c 
Run Code Online (Sandbox Code Playgroud)

我想获取有关两次提交之间所有已修改文件的信息,而此命令正是我想要做的。您能对此发表评论吗?

mha*_*wke 5

这是一种方法:

import git

repo = git.Repo('path/to/your/repo')
print repo.git.diff('ec04352', 'b945e6c', **{'name-status': True})
Run Code Online (Sandbox Code Playgroud)

但是,它正在通过后门。

您应该能够执行以下操作:

a = repo.commit('ec04352')
b = repo.commit('b945e6c')
diffs = a.diff(b)

>>> a
<git.Commit "ec04352">
>>> b
<git.Commit "b945e6c">
>>> print diffs[0]
zip/JSONzip.java
=======================================================
lhs: 100644 | d8e3ac652a5a5158692fa5fc131340c03dffd08e
rhs: 100644 | 220686de3dcb0dd17a54cbc5f8e44df261b664d5
>>> 
Run Code Online (Sandbox Code Playgroud)

您需要使用该Diff对象来找出差异。