我希望创建一种可以自动拉出并构建多个git repos的脚本(Windows机器)
本地git存储库如下:
C:\ Users \ user \ Git \ projectA \ projectA
C:\ Users \ user \ Git \ projectB \ projectB
C:\ Users \ user \ Git \ projectC \ projectC
C:\ Users \ user \ Git \ projectD \ projectD
在执行此操作时,将切换到所包含文件夹的development分支:
So this would run something like this:
cd projectA
cd projectA
git checkout开发
mvn全新安装
cd ..
cd ..
在所有包含的项目中依此类推
cd projectB
cd projectB
git checkout开发
mvn全新安装
cd ..
cd ..
任何朝着正确方向的指导将不胜感激。
答案 0 :(得分:1)
您可以运行括号循环,以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
)
这些问题是,如果您有许多项目要运行,那么对于循环来说将非常大。
答案 1 :(得分:0)
在批处理文件中,您可以执行以下操作:
for /D %s in (.\*) do
cd %s
git checkout develop
mvn clean install
cd ..