如何使用 git python 获取差异
How can I use git python get diffs
我正在尝试使用 GitPython 以我想要的格式获取差异。
对于每个文件,我想要 3 个列表。已更改、添加和删除的行的列表。
我一直在网上和文档中查找,但似乎无法弄清楚如何执行此操作。
看到这个 documentation。可能会有用。
据我所知,实际上没有办法做到这一点。
您可能认为他们会实现此功能,但据我所知,文件级差异并未直接在 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 差异。
我必须假设 GitPython 主要用于管理对分支的更改等,而不是检查或处理文件级别的源代码更改。
我正在尝试使用 GitPython 以我想要的格式获取差异。
对于每个文件,我想要 3 个列表。已更改、添加和删除的行的列表。
我一直在网上和文档中查找,但似乎无法弄清楚如何执行此操作。
看到这个 documentation。可能会有用。
据我所知,实际上没有办法做到这一点。
您可能认为他们会实现此功能,但据我所知,文件级差异并未直接在 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 差异。
我必须假设 GitPython 主要用于管理对分支的更改等,而不是检查或处理文件级别的源代码更改。