nh2*_*nh2 3 git git-diff git-submodules
我们的项目使用 git子模块来固定我们的库依赖项之一。
我们定期rebase将子模块跟踪上游更改,并且我们在它上面还有一组我们不能轻易上游的提交。
当有人重新设置子模块时,我只git diff在父存储库中看到这一点:
--- a/mysubmodule
+++ b/mysubmodule
@@ -1 +1 @@
-Subproject commit abc12345abc12345abc12345abcd12345abc1234
+Subproject commit efg67890efg67890efg67890efg67890efg67890
Run Code Online (Sandbox Code Playgroud)
那不是很有用。当我git diff在子模块中提交这些提交时,我会得到很多输出,包括所有上游更改,我们的提交位于顶部。我无法轻易判断对我们自己的提交执行的某些冲突解决是否引入了一些错误。
如何有效地对子模块的更改进行代码审查?
使用git range-diff. 它正是为此目的而设计的,以审查提交范围。
如果您的父提交存储库具有:
-Subproject commit abc123
+Subproject commit efg678
Run Code Online (Sandbox Code Playgroud)
然后cd进入您的子模块并运行(注意三点...):
-Subproject commit abc123
+Subproject commit efg678
Run Code Online (Sandbox Code Playgroud)
示例输出解释:
红绿线显示作为 rebase 的一部分更改的提交(例如,当冲突解决方案必须更改您的提交以使用修改后的上游代码时)。
当它们出现时,它们还包括一个正常的差异,因此您可以检查差异。
作为审查的一部分,您应该特别检查添加/删除顶部提交是否正确(或者是否意外删除了一些),以及冲突解决(红绿线)是否正确。
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |