Win10 Git Mac

发布于 更新于

AI总结: 本文介绍了用于循环执行git命令的Windows批处理脚本,包括pull和push操作。脚本设置了在连接GitHub失败时,每5秒重试,最多可尝试100次。用户可以将这些脚本放在PATH目录下,直接在仓库目录中执行。脚本中检查当前目录是否为git仓库,并在失败时输出相应提示。文中还提到在Mac上可以通过添加alias来实现类似功能。需要注意的是,脚本中的循环次数设置为100次,如果需要永久循环,应调整为(0,0,1)。此外,chcp命令用于修改命令行窗口的编码格式。存在的错误观点是,脚本中提到的“如果需要永久循环设置为(0,0,1)”并不符合标准的循环控制语法,应明确说明如何实现这一点。

循环执行脚本

判断参数命令执行结果, 如果失败则重复执行
retry.cmd git push origin main

@echo off  
chcp 65001  
echo %*  
for /l %%a in (1,1,100) do (echo %%a------------------- && %* && goto :EOF; sleep 5)  

:EOF  
echo -------------------end  

git推拉脚本

因github容易连不上, 所以pull, push时, 有时需要循环执行
暂定间隔5秒循环执行, 一般10次以内能成功 这里设置了100次, 如果需要永久循环 设置为(0,0,1)

用法: 将pull.cmd, push.cmd脚本放到PATH目录下, 使用时直接在仓库目录, 执行pull, push即可

pull.cmd

@echo off  
chcp 65001  
rem 因github容易连不上, 所以间隔5秒循环执行, 一般10次以内都能成功 这里设置了100次, 如果需要永久循环 设置为(0,0,1)  
echo git pull  
git rev-parse --is-inside-work-tree >nul 2>nul  
if %errorlevel% equ 0 (  
    for /l %%a in (1,1,100) do (echo %%a----------------------- && git pull && goto :EOF; sleep 5)  
) else (  
    echo 当前目录不是git仓库  
)  
:EOF  
echo -------------------------end  

push.cmd

@echo off  
chcp 65001  
rem 因github容易连不上, 所以间隔5秒循环执行, 一般10次以内都能成功 这里设置了100次, 如果需要永久循环 设置为(0,0,1)  
echo git push  
git rev-parse --is-inside-work-tree >nul 2>nul  
if %errorlevel% equ 0 (  
    for /l %%a in (1,1,100) do (echo %%a------------------- && git push && goto :EOF; sleep 5)  
) else (  
    echo 当前目录不是git仓库  
)  

:EOF  
echo -------------------end  

Mac添加alias实现

pull='for i in `seq 1 100`; do echo $i && git pull && break; sleep 5; done'  
push='for i in `seq 1 100`; do echo $i && git push && break; done'  

chcp

修改cmd编码

chcp 936  #GBK  
chcp 65001 #UTF-8