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

时间:2016-03-09 02:13:12

标签: git git-submodules git-status

我在git项目中有一个库,它是一个子模块,我将其命名为service-lib。

serivce-lib不是我自己或我公司开发的,实际上我鼓励不要编辑它。

如何检查此模块的git状态:

  1. 检查以确保我没有意外编辑/创建文件 在其中
  2. 查看开发人员的任何更新(即我可以采用 他们可能已添加的任何错误修复)

3 个答案:

答案 0 :(得分:4)

git submodule具有以下命令来查看子模块的状态。

git submodule status path/to/submodule

答案 1 :(得分:1)

使用status命令就像使用任何其他git repo

一样

enter image description here

git submodule status

  

显示子模块的状态。

     

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

     

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

     

如果指定了--recursive,则此命令将递归到嵌套的子模块中,并显示其状态。

     

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

答案 2 :(得分:1)

请注意,如果只有一个子模块,则查看其状态更为简单:

git submodule

这是因为,在Git 2.22(Q2 0219)之前,git-submodule.txt和git-submodule的用法文本中均未记录子模块的默认行为。

请参见commit 68cabbfDenton Liu (Denton-L)(2019年2月15日)。
(由Junio C Hamano -- gitster --commit c388c12中合并,2019年3月7日)

现在documentation includes

  

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