我正在解析对git仓库进行的一系列更改,其中一些更改涉及子模块。我使用git blame
来查找子模块中的相关提交,但有一种简单的方法可以找到我的主仓库中的哪个提交更改了该提交的子模块指针?
提示简单图:
1 <- 2 <- 3 <- 4 <- 5 (Main chain of commits)
| | | | |
1 1 1 2 2 (Submodule)
我找到了子模块#1变为子模块#2的提交(比如它的9d95812e ......)。如何确定main-commit#4是否首次使用新子模块提交的事实?
答案 0 :(得分:4)
据我所知,这是不太可能的,你可以得到的最接近的是确定哪些提交添加或删除了特定的子模块指针:
git log -p -S "Subproject commit c4965b1..."
的产率:
commit xyz123456
Author:
Date:
Message
diff...
@@ -1 +1 @@
-Subproject commit 901231290321
+Subproject commit 1902u8129039
唯一的问题是+/-
不是您要搜索的实际字符串的一部分,因此您无法专门查找添加或删除,但使用-p
标记会让您很容易看到这一点。
答案 1 :(得分:1)
您也可以使用
git log -p -- path/to/submodule
如果要查看其随时间的变化,请查看所有更新了子模块指针的提交。