在" git submodule foreach"之后添加条件逻辑

时间:2014-08-06 14:14:30

标签: git continuous-integration git-submodules

我正在编写一个脚本来更新CI环境中各种项目的子模块。单个脚本需要注意以下三种情况:

  1. 始终需要子模块的主分支的项目。
  2. 引用子模块特定分支的项目。
  3. 参考子模块的特定提交的项目。
  4. 是否可以创建此单个脚本来处理来自父项目的所有这些不同情况的子模块更新?

    git submodule foreach git pull将处理案例1和2但不处理3。

    git submodule foreach git pull origin master会处理1但在某种意义上也会处理3,因为它不会失败。

    有没有在foreach之后添加条件逻辑,所以我可以正确更新所有子模块?或者我是否试图以错误的方式解决问题? 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

您无需明确提取:您可以配置子模块以提及需要更新的分支 请参阅“git submodule tracking latest”。

您可以转换现有的子模块以添加该分支信息 请参阅“Git submodules: Specify a branch/tag”。

从那里,一个简单的命令会照顾你:

git submodule update --recursive --remote