如何拉取所有子模块的更改

时间:2017-09-21 17:43:20

标签: git git-submodules

场景是:

我有一些带有分支的子模块。

  • sdk(develop,release-1.0)
  • api(develop,release-1.0)

每次我需要构建我的应用程序时,我都会这样做

public static void main(String[] args) throws Exception {

    String str1 = "https://somehost:someport/employee/v1/salaries/123/as56hgXWF";
    //String str2 = "/employee/v1/salaries/123/as56hgXWF";
    String str2 = str1.replaceAll("^http.*://[a-zA-Z0-9.:]+", "");
    String rgx = "(?<=([a-zA-Z0-9][/\\\\]))((([a-zA-Z]+)([0-9]+)([a-zA-Z0-9]*))|(([0-9]+)([a-zA-Z]+)([a-zA-Z0-9]*)))";
    System.out.println(str1.replaceAll(rgx, "XYZ")); // print ->    https://somehost:someport/employee/XYZ/salaries/123/XYZ
    System.out.println(str2.replaceAll(rgx, "XYZ")); // print ->    /employee/XYZ/salaries/123/XYZ

}

但是我必须移动每个子模块文件夹,并在我想要的特定分支中进行拉动。

我问是否有办法在特定分支上执行相同的递归命令。

1 个答案:

答案 0 :(得分:2)

过了一会儿,我找到了这个命令。

git pull origin branch_name && git submodule foreach --recursive git pull origin branch_name

这对我来说很好。

另外,我已经用不同的方式进行了测试,我发现了

git branch && git submodule foreach --recursive git branch

帮我检查每个子模块我检查的分支。

希望能帮到你们!