每次更新代码时都要手动输入多条 Git 命令?这个批处理脚本(.bat
)可以直接拖拽文件或文件夹到脚本上,自动完成 git add
、git commit
和 git push
操作,大大简化 GitHub/Gitee 代码上传流程!支持自定义分支名和提交信息,默认使用当前日期作为 commit 备注,方便快捷。
适用场景:
- 频繁更新代码到 GitHub/Gitee
- 自动化 Typora 笔记备份
- 快速提交项目更改,减少手动操作
使用方法:
- 将脚本保存为
.bat
文件(如GitHubUpload.bat
)。 - 拖拽文件或文件夹到脚本上运行。
- 输入分支名(默认
main
)和提交信息(默认当前日期)。 - 脚本自动完成 Git 上传,无需手动输入命令!
交互时序图(Sequence Diagram)
@echo off
:: ======================================================================
:: GitHub拖拽上传批处理脚本
:: 功能:通过拖拽文件或文件夹到本脚本上,自动将其上传到GitHub仓库
:: 使用方法:
:: 1. 将本脚本保存为.bat文件
:: 2. 将要上传的文件或文件夹拖拽到本脚本图标上
:: 3. 按照提示输入分支名和提交信息
:: 4. 脚本会自动完成Git上传流程
:: ======================================================================
:: 显示标题和分隔线
echo.
echo GitHub拖拽上传脚本
echo ======================================================================
echo.
:: 检查是否拖拽了文件或文件夹
if "%~1"=="" (
echo 错误:请将文件或文件夹拖拽到本脚本上再运行
pause
exit /b
)
:: 获取被拖拽的路径
set "drag_path=%~1"
echo 检测到拖拽路径: %drag_path%
echo.
:: 提示用户输入分支名和提交信息
set /p branch=请输入你的分支名(默认为main,直接回车使用默认值):
set /p commit_msg=请输入commit提交信息(默认为当前日期,直接回车使用默认值):
:: 设置默认值
if "%branch%"=="" set branch=main
if "%commit_msg%"=="" (
:: 获取当前日期作为默认提交信息
set commit_msg=%date:~3,10%
)
:: 切换到被拖拽项目的目录
echo 正在切换到项目目录...
cd /d "%~dp1"
echo 当前工作目录: %cd%
echo.
:: 执行Git操作
echo 正在执行Git操作...
echo.
:: 1. 拉取最新代码
echo [1/4] 正在从远程仓库拉取最新代码...
git pull origin %branch%
if %errorlevel% neq 0 (
echo 错误:拉取代码失败
pause
exit /b
)
:: 2. 添加所有更改
echo [2/4] 正在添加所有更改...
git add .
if %errorlevel% neq 0 (
echo 错误:添加更改失败
pause
exit /b
)
:: 3. 提交更改
echo [3/4] 正在提交更改,提交信息: "%commit_msg%"...
git commit -m "%commit_msg%"
if %errorlevel% neq 0 (
echo 错误:提交更改失败
pause
exit /b
)
:: 4. 推送更改
echo [4/4] 正在推送更改到远程仓库...
git push origin %branch%
if %errorlevel% neq 0 (
echo 错误:推送更改失败
pause
exit /b
)
:: 显示完成信息
echo.
echo ======================================================================
echo GitHub上传成功完成!
echo 分支: %branch%
echo 提交信息: "%commit_msg%"
echo 上传路径: %drag_path%
echo ======================================================================
echo.
pause
脚本执行流程(Flowchart)
脚本作用和解释
脚本功能
- 拖拽上传:支持将文件或文件夹直接拖拽到脚本图标上,自动识别路径
- 自动化Git流程:自动执行
git pull
、git add
、git commit
和git push
全套操作 - 用户友好提示:提供清晰的步骤提示和错误处理
- 默认值设置:分支名默认为"main",提交信息默认为当前日期
- 错误处理:每个Git操作都有错误检查,失败时会停止并提示
主要组成部分解释
-
拖拽处理:
%~1
获取第一个参数(拖拽的文件/文件夹路径)%~dp1
获取拖拽项目的目录路径
-
用户输入:
set /p
命令获取用户输入的分支名和提交信息- 为空时使用默认值
-
Git操作流程:
- 先拉取最新代码(
git pull
)避免冲突 - 添加所有更改(
git add .
) - 提交更改(
git commit -m
) - 推送到远程仓库(
git push
)
- 先拉取最新代码(
-
日期处理:
%date:~3,10%
从系统日期中提取"YYYY/MM/DD"格式的日期
-
错误处理:
- 每个Git命令后检查
%errorlevel%
,非零时表示出错 - 出错时显示错误信息并暂停,然后退出
- 每个Git命令后检查
使用注意事项
- 使用前请确保已安装Git并配置好GitHub账户
- 拖拽的文件夹应该是一个Git仓库(包含.git目录)
- 如果仓库需要认证,请提前配置好SSH或HTTPS认证方式
- 默认分支为main,可根据需要修改
这个脚本大大简化了Git上传流程,特别适合需要频繁更新代码到GitHub的用户,避免了重复输入多条Git命令的繁琐操作。