【效率提升】git一键克隆、更新、切换分支

【效率提升】git一键克隆、更新、切换分支

布景

目前公司选用微服务架构的方法,拆分十几个甚至更多的服务,此刻因为服务数量的添加,对项意图办理变得愈加麻烦,闲暇之余研讨了几个小工具(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一键克隆、更新、切换分支

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文件内容示例如下

【效率提升】git一键克隆、更新、切换分支
用处: 当版别迭代时,如从X10至X11版别时,需求切换项意图分支,可经过该工具,批量快速切换。

总结

这几个脚本的本质还是经过bat脚本批量履行git的指令句子。