布景
目前公司选用微服务架构的方法,拆分十几个甚至更多的服务,此刻因为服务数量的添加,对项意图办理变得愈加麻烦,闲暇之余研讨了几个小工具(bat脚本),期望对大家有所帮助。
1.1. git批量克隆
1、将cloneList.txt和git_clone_batch.bat两个文件,放到用于寄存项意图根目录。
2、在cloneList.txt文件中保护需求批量克隆的http地址,每行一个项目地址。注释用#开头。
3、双击履行git_clone_batch.bat,则会进行批量克隆项目,若项目已存在,指令会提示已存在该项目,会继续履行下一条指令。
cloneList.txt文件内容示例如下
# 若不指定分支,则下载该项意图默认分支
"git项意图http地址"
# 下载指定分支的代码
#-b "分支名" "git项意图http地址"
git项意图http地址如下
git_clone_batch.bat脚本内容如下
::for loop test
chcp 65001
@echo off
for /f delims^=^ eol^=^# %%c in (cloneList.txt) do git clone %%c
pause
用处:在给新人注册项目权限后,可提供给新人运用,可快速下载一切对应的项目。
1.2 git批量更新
1、将git_pull_batch.bat文件,放到用于存在项意图更目录,双击履行,则会对该目录下一切项目履行git pull 操作。
备注:运用前应先确认项目是否有未提交的代码,防止存在抵触的情况。
git_pull_batch.bat文件的内容如下
@echo off
chcp 65001
for /d %%i in (*) do (
if not %%i==[Filter] (
if exist "%~dp0%%i\.svn\" (
echo 正在更新svn项目 %%i
@cd %cd%\%%i && @svn update
) else if exist "%~dp0%%i\.git\" (
echo 正在更新git项目 %%i
@cd %cd%\%%i && @git pull
) else (
echo.
echo -- 进入文件夹 %%i
cd "%~dp0%%i\
for /d %%j in (*) do (
if not %%j==[Filter] (
if exist "%~dp0%%i\%%j\.svn\" (
echo 正在更新svn项目 %%j
@cd %~dp0%%i\%%j && @svn update
) else if exist "%~dp0%%i\%%j\.git\" (
echo 正在更新git项目 %%j
@cd %~dp0%%i\%%j && @git pull
)
)
)
)
)
)
pause
1.3 git批量切分支
1、将switchList.txt和batch_switch.bat两个文件,放到用于寄存项意图根目录。
2、在switchList.txt文件中保护相关数据,每行的文本内容为项目+方针分支,以空格为距离。
3、双击履行batch_switch.bat,则会切换存在于switchList.txt文件中的项意图分支,根目录中若不存在其文件中的描绘的项目名,则会跳过处理。
batch_switch.bat文件的内容如下
@echo off
chcp 65001
for /f delims^=^ eol^=^# %%c in (switchList.txt) do (
for /f "tokens=1,2" %%a in ("%%c") do (
set d=%%a&set t=%%b
if exist %%a (echo 项目:%%a 分支将准备切换至 %%b
cd %%a
git fetch
git checkout %%b
git pull
cd ../
)
)
)
pause
switchList.txt文件的内容格式如下
"项目名" "方针分支"
"项目名" "方针分支"
switchList.txt文件内容示例如下
用处: 当版别迭代时,如从X10至X11版别时,需求切换项意图分支,可经过该工具,批量快速切换。
总结
这几个脚本的本质还是经过bat脚本批量履行git的指令句子。