Skip to main content
 首页 » 编程设计

python之如何在 python 中构造 git diff 查询

2025年05月04日15langtianya

我正在使用推荐的 GitPython module , 但我不知道如何构造以下命令:

git diff --name-status ec04352 b945e6c  

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

请您参考如下方法:

这是一种方法:

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

但是,它正在通过后门。

你应该能够做这样的事情:

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 
>>>  

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