c_101/本地提交文件.bat
SpecialX ef8438da42 A 更新并提交本地文件及同步远程仓库脚本
A 本地提交文件.bat
--该脚本用于将本地修改的文件提交到本地 Git 仓库,确保所有更改记录在版本控制中。它帮助开发者快速执行 git add 和 git commit 命令,以便更高效地管理代码更新。
A 更新并拉取仓库.bat
--该脚本用于从远程仓库拉取最新的代码更新,并自动合并到本地分支。它通过执行 git pull 命令,确保本地代码库与远程仓库保持同步,减少代码冲突。
2024-12-17 16:18:23 +08:00

83 lines
1.9 KiB
Batchfile

@echo off
REM 1. 获取所有未跟踪或者修改的文件
echo 正在获取未跟踪或修改的文件...
setlocal enabledelayedexpansion
REM 清空变量
set "modified_files="
set "untracked_files="
REM 收集修改的文件
for /f "tokens=*" %%i in ('git ls-files --modified') do (
echo 修改的文件: %%i
set "modified_files=!modified_files! %%i"
)
REM 收集未跟踪的文件
for /f "tokens=*" %%i in ('git ls-files --others --exclude-standard') do (
echo 未跟踪的文件: %%i
set "untracked_files=!untracked_files! %%i"
)
REM 2. 获取当前 Git 用户名
for /f "tokens=*" %%u in ('git config user.name') do set "username=%%u"
echo 当前 Git 用户名是: %username%
REM 3. 创建两个列表来存储文件
set "invalid_files="
set "valid_files="
REM 4. 检查文件路径是否符合要求
echo 正在检查文件路径...
for %%f in (!modified_files! !untracked_files!) do (
echo %%f | findstr /i "Content/PrivateCommonLiberal/%username%" >nul
if errorlevel 1 (
echo 文件未通过检查: %%f
set "invalid_files=!invalid_files! %%f"
) else (
echo 文件通过检查: %%f
set "valid_files=!valid_files! %%f"
)
)
REM 5. 检查未通过文件列表
if not "!invalid_files!"=="" (
echo 推送失败:以下文件不符合要求,请检查:
for %%f in (!invalid_files!) do echo %%f
echo.
set /p "confirm=是否忽略这些文件并继续提交?(y/n): "
if /i "!confirm!"=="y" (
echo 正在丢弃未通过的文件更改...
for %%f in (!invalid_files!) do (
git reset "%%f" >nul 2>&1
git checkout -- "%%f" >nul 2>&1
git clean -f "%%f" >nul 2>&1
)
) else (
echo 操作已取消。
pause
exit /b 1
)
)
REM 6. 输入提交信息
echo 所有文件符合要求,准备提交...
set /p "title=请输入提交标题:"
set /p "details=请输入提交细节:"
REM 7. 提交通过检查的文件
for %%f in (!valid_files!) do (
git add "%%f"
)
git commit -m "%title%" -m "%details%"
if %errorlevel% neq 0 (
echo 错误: 提交失败,请检查是否有更改。
pause
exit /b 1
)
echo 提交成功!
pause