【问题标题】:how to perform "git status" across many submodules如何跨多个子模块执行“git status”
【发布时间】:2012-08-20 01:23:57
【问题描述】:

我有一个包含多个子模块的 git 存储库。当我在父模块中执行git status 时,它只显示我在该级别的更改,我需要将cd 放入每个子模块并在每个模块中分别执行git status。有没有更好的方法可以让我在顶层执行git status 并查看所有子模块的变化?

我的git --version 回复:

git 版本 1.7.9.6 (Apple Git-31.1)

【问题讨论】:

    标签: git status git-submodules


    【解决方案1】:
    git submodule foreach --recursive 'git status && echo'
    

    你可以把它变成一个 Git 别名,以避免每次都输入它。

    【讨论】:

    • 辛苦了。这接近我所需要的,它列出了每个子存储库中的更改,尽管没有换行符来分隔有更改的文件名,尽管每个子模块都正确地用换行符分隔。如果您可以将文件名分开,我会接受答案。
    • 实际上,由于submodule foreach 已经指示它何时进入每个子模块,您可能可以省略路径回显,这将解决换行问题。在这里,我将对其进行编辑。
    【解决方案2】:

    git 对子模块一无所知。它只是将目录树作为一个完整的存储库。正确安装的 git 副本,当您运行“git status”时,它应该显示对存储库的所有更改。 但是如果您的子模块属于不同的存储库,则没有官方方法可以显示所有更改。(也许写一些脚本)

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2013-11-09
      • 2016-02-26
      • 2015-11-25
      • 2021-01-23
      • 2013-02-08
      • 1970-01-01
      • 2016-12-06
      • 2017-12-28
      相关资源
      最近更新 更多