如何查看git子模块库的状态?

3
我在一个Git项目中有一个库,它是一个子模块,我将其称为service-lib。
service-lib不是由我或我的公司开发的,事实上,我被鼓励不要编辑它。
如何检查此模块的git状态以:
1. 确保我没有意外地编辑/创建其中的文件 2. 查看开发人员的任何更新(即,以便我可以采用他们可能添加的任何错误修复)
3个回答

4

Git子模块有以下命令用于查看子模块状态。

git submodule status path/to/submodule


1

使用status命令,就像您处理其他git存储库一样

enter image description here


git submodule status

显示子模块的状态。

这会打印出每个子模块当前签出提交的SHA-1,以及子模块路径和SHA-1的 git describe 输出。

如果子模块未初始化,则每个 SHA-1 前缀为 -,如果当前签出的子模块提交与包含存储库的索引中找到的 SHA-1 不匹配,则前缀为 +,如果子模块存在合并冲突,则前缀为 U。

如果指定了 --recursive,此命令将递归进入嵌套的子模块,并显示它们的状态。

如果您只对当前已初始化的子模块相对于索引或 HEAD 记录的提交的更改感兴趣,则 git statusgit diff 也可以提供该信息(并且还可以报告对子模块工作树的更改)。


1
请注意,如果您只有一个子模块,那么查看其状态将更加简单:
git submodule

这是因为,在Git 2.22之前(2019年第二季度),子模块的默认行为在git-submodule.txt和git-submodule的用法文本中都没有记录。

参见提交68cabbf(由Denton Liu (Denton-L)于2019年2月15日提交)
(由Junio C Hamano -- gitster --合并于提交c388c12,2019年3月7日)

现在文档包括以下内容:

不带参数时,显示现有子模块的状态。
有几个子命令可用于对子模块执行操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接