基于git的增量部署工具

该批处理文件适用场景: windows+git

@echo off
setlocal enabledelayedexpansion
rem 提取增量发布的源码文件(基于git的项目)到指定目录(dest_dir)
rem 调用格式:incdeploy.bat [param1, [param2]]
rem 0个参数:git diff --name-only
rem 1个参数:git diff --name-only param1
rem 2个参数:git diff --name-only param1 param2

rem if "%2"=="" goto :need_two_params
rem if "%1"=="" goto :need_two_params

rem 设置增量备份主目录
set "dest_dir=D:\xxx\xxx"
rem 参数定义
set "src_dir=%cd%"
set "file_name=update-%date:~0,4%%date:~5,2%%date:~8,2%"
set "upd_dir=%dest_dir%\%file_name%"
set "diff_file=%upd_dir%.txt"

rem 如果存在增量备份目录,先删除再新建
if exist %upd_dir% rd /s /q %upd_dir%
mkdir %upd_dir%
rem 用【git diff】命令获取2个版本之间改动的文件
git diff --name-only %1 %2 > %diff_file%
if not %errorlevel% == 0 (
  echo 运行【git diff】出错,检查【commit id】是否正确!
  goto exit
)

rem 利用【xcopy】拷贝文件
for /f "delims=" %%i in (%diff_file%) do (
  set ia=%%i
  set ib=!ia:/=\!
  echo F | xcopy %src_dir%\!ib! %upd_dir%\!ib! /S /Q /Y
)
goto end

:need_two_params
echo 需要输入1个或2个参数:【commit id】
goto exit

:exit
echo.
echo 程序运行【失败】
exit /b 1

:end
echo.
tree /F %upd_dir%
echo 程序运行【成功】
exit /b 0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值