我希望创建一种可以自动拉取和构建多个git repos的脚本。(Windows机器)
本地git存储库如下:
C:\ Users \ user \ Git \ projectA \ projectA
C:\用户\用户\的Git \项目\项目
C:\用户\用户\的Git \项目\项目
C:\用户\用户\ GIT中\项目\项目
在这样做时,它将切换到包含文件夹的develop分支:
So this would run something like this:
cd projectA
cd projectA
git checkout开发
mvn clean install
光盘..
光盘..
等等所有包含的项目
cd projectB
cd projectB
git checkout开发
mvn clean install
光盘..
光盘..
任何正确方向的指导将不胜感激。
您可以运行带有qhesxswpoi的括号循环到每个路径并执行任务,如果指定父路径并且不需要cd
,则可以从设备上的任何位置运行脚本
cd..
根据您对问题和评论的更改,如果您的子项目文件夹与父文件夹名称相同,则只需执行以下操作:
for /D %%a in ("C:\Users\user\Git\*") do (
cd "%%a"
git checkout develop
mvn clean install
)
如果你在项目文件夹以外的for /D %%a in ("C:\Users\user\Git\*") do (
cd "%%a\%%~na"
git checkout develop
mvn clean install
)
中有其他文件夹,并且只想git
到项目文件夹,那么:
cd
至于你的上一个评论,你能够做到这一点的唯一方法就是使用一个循环,但是在for /D %%a in ("C:\Users\user\Git\project*") do (
cd "%%a\%%~na"
git checkout develop
mvn clean install
)
循环中指定每个订单:
for
或者即使您想要指定完整文件夹,如果它们可能具有不同的名称,例如:
for %%a in (B,C,A) do (
cd "C:\Users\user\Git\project%%a\project%%a"
git checkout develop
mvn clean install
)
这些问题是,如果要运行许多项目,它对于循环来说会非常大。
在批处理文件中,您可以执行以下操作:
for %%a in (projectB,NewProjectC,AnotherProjectA) do (
cd "C:\Users\user\Git\%%a\%%a"
git checkout develop
mvn clean install
)