问题描述
我想使用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 (将#修改为@)