我正在尝试使用GitPython以我想要的格式获取差异。
对于每个文件我想要3个列表。已更改,添加和删除的行列表。
我一直在网上查看文档,似乎无法弄清楚如何做到这一点。
答案 0 :(得分:1)
据我所知,实际上没有办法做到这一点。
您可能以为他们会实现此功能,但据我所知,文件级差异未直接在GitPython中实现。
在GitPython中检索更改的行的唯一方法是直接使用git命令,如下所示:
from git import Repo
repo = Repo('path/to/repo')
filename = 'path/to/repo/subdir/myfile'
diff_output = repo.git.diff(filename)
现在diff_output包含的内容与您看到的内容相同:
$ cd path/to/repo
$ git diff subdir/myfile
所以它不是很有用。您可能将不得不编写自己的代码来分析diff文件以获得所需的信息。
令人沮丧,因为我想要类似的功能,而且看来我唯一的选择确实是手动解析git diff。
我必须假定GitPython主要用于管理分支等的更改,而不是在文件级别检查或处理源代码更改。
答案 1 :(得分:0)
见documentation。它可能很有用。