1

作为一个个人项目,我想检查不同的 python 库和项目(无论是专有的还是开源的)并分析代码在不同版本中随着时间的推移是如何变化的,以收集有关技术债务的一些信息(主要通过静态代码分析)。我正在使用gitpython库来执行此操作。但是,我正在努力过滤对master.

我使用从中提取提交哈希的位置过滤合并提交git.log("--merges", "--first-parent", "master"),并从所有存储库提交中过滤这些特定提交。

作为第二部分,我想在每个合并提交中获取所有更改的文件。我可以通过 git tree 访问 blob,但我不知道如何只获取更改的文件。

有没有一些有效的方法来实现这一点?谢谢!

4

1 回答 1

0

...我想在每个合并提交中获取所有更改的文件。...但我不知道如何只获取更改的文件。

一旦你有了上面描述的提交列表,循环它们并运行以下命令:

git diff

git diff--name-only标志一起使用

在此处输入图像描述


git diff

--name-only
仅显示更改文件的名称。

--name-status
仅显示更改文件的名称和状态。有关状态字母的含义,请参阅 --diff-filter 选项的描述。

于 2018-11-10T07:58:44.350 回答