Git Python:在子模块中查找已更改文件的列表

问题描述

我想使用git Python库获取子模块中所有已更改文件的列表。

存储库的设置如下:

MasterProject:
        - file1.txt
        - file2.txt
        - Subproject/
                - file3.txt
                - file4.txt

MasterProject存储库中的提交通常是子项目的提升,只是有时项目文件中有更改。

当我使用Git在MasterProject中对两个提交进行比较时,我得到的输出是这样的:

MyProject> git diff 14f32dd02dc1fd1a6f9a81ee15160c718a0a484b 13ce55646c66e25203da121c72931de6738ee7a3
diff --git a/subproject b/subproject
index 4bd3232..cb481c5 160000
--- a/subproject
+++ b/subproject
@@ -1 +1 @@
-Subproject commit 4bd323224f03866c4d7aa4eb903c6dedce7fd7bd
+Subproject commit cb481c5b15aefea86d6d998f260858dfdfd998af

现在,当我进入子项目并对上面输出中列出的提交执行git diff时,我将获取已更改文件的列表:

MyProject/Subproject>git diff 4bd323224f03866c4d7aa4eb903c6dedce7fd7bd cb481c5b15aefea86d6d998f260858dfdfd998af --name-only
file1.txt
file2.txt

现在,我想使用Git Python库实现完全相同的功能。 我不知道如何从Diff对象中检索子项目中已更改的两个SHA。

repo = git.Repo()
c1 = repo.commit('14f32dd02dc1fd1a6f9a81ee15160c718a0a484b')
c2 = repo.commit('13ce55646c66e25203da121c72931de6738ee7a3')
diff = c1.diff(c2)[0]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)