bat 自动 git pull


如果将项目文件,放在同一个目录下,想批量检出,比较重复的方法是每个文件夹打开一个git bash 然后git pull

可以通过一个脚本,放在项目同级目录下,双击就可以批量自动更新git项目了。

下面的脚本可读性还是可以的(就是bat语法有点恶心,跟linux的shell语法一样恶心)

gitPull.bat 脚本

@echo off 

for /d %%a in (*) do (
    echo %%~a
    cd %%~a
    git pull
    cd ..
)

pause

注意事项

有一个需要注意的是,git bash可以执行git不代表git的cmd可以执行,如果直接在cmd输入git提示:

C:\Users\Administrator\git
'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。
C:\Users\Administrator\git

那么就需要配置一下环境变量了,操作:

我的电脑》右键》属性》高级系统设置》高级》环境变量》(用户变量)PATH

至于修改用户变量还是系统变量?

用户变量和系统变量,就看你自己了,如果是只有一个用户的,直接配置用户变量即可,把git的路径配置进去(可以通过everything这个强大的Windows文件索引工具找到你的git.exe)

本人的用户变量参考:

C:\Python37\Scripts\;C:\Python37\;C:\Users\Administrator\AppData\Roaming\Composer\vendor\bin;C:\Program Files (x86)\Git\cmd\

开机启动自动执行一个bat

将上述放到Startup目录即可在Windows启动的时候就执行:

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

如果盘符不在C盘,那么需要加个D: cd xxx类似,完整gitPull.bat脚本:

@echo off 
D:
cd githome
for /d %%a in (*) do (
    echo %%~a
    cd %%~a
    git pull
    cd ..
)
pause

Linux的自动pull脚本

将下面保存成为autopull.sh文件,然后chmod u+x autopull.sh后,即可执行./autopull.sh批量更新当前目录的仓库

#!/bin/sh
basepath=$(cd `dirname $0`; pwd)
echo "current dir: $basepath"
echo ""
for rop in $(find $basepath -type d  -name ".git" | cut -d. -f1)
do
    echo "git pulling: $rop"
    cd $rop && git pull  && cd $basepath
    echo ""
done

echo "["`date +"%Y-%m-%d %H:%M:%S"`"]" "All git pull done!!!";

echo ""

原文链接:https://blog.yongit.com/note/215283.html