A 更新并提交本地文件及同步远程仓库脚本
A 本地提交文件.bat --该脚本用于将本地修改的文件提交到本地 Git 仓库,确保所有更改记录在版本控制中。它帮助开发者快速执行 git add 和 git commit 命令,以便更高效地管理代码更新。 A 更新并拉取仓库.bat --该脚本用于从远程仓库拉取最新的代码更新,并自动合并到本地分支。它通过执行 git pull 命令,确保本地代码库与远程仓库保持同步,减少代码冲突。
This commit is contained in:
parent
3b5bc70561
commit
ef8438da42
82
更新并拉取仓库.bat
Normal file
82
更新并拉取仓库.bat
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
REM 1. 验证当前分支是否为 Dev 分支
|
||||||
|
echo 正在检查当前分支...
|
||||||
|
for /f "tokens=*" %%i in ('git rev-parse --abbrev-ref HEAD') do set branch=%%i
|
||||||
|
echo 当前分支: %branch%
|
||||||
|
if "%branch%" neq "Dev" (
|
||||||
|
echo 错误: 当前分支不是 'Dev'。请先切换到 'Dev' 分支。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 2. 检查是否有未提交的更改
|
||||||
|
echo 正在检查是否有未提交的更改...
|
||||||
|
git diff --quiet
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo 错误: 你有未提交的修改,请先提交或暂存更改。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 3. 检查暂存区是否有未提交的更改
|
||||||
|
echo 正在检查是否有暂存的更改...
|
||||||
|
git diff --cached --quiet
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo 错误: 你有暂存的更改,请先提交或取消暂存。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 4. 检查是否有未跟踪的文件
|
||||||
|
echo 正在检查是否有未跟踪的文件...
|
||||||
|
git ls-files --others --exclude-standard
|
||||||
|
if %errorlevel% == 0 (
|
||||||
|
echo 错误: 你有未跟踪的文件,请先将文件添加或忽略它们。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 5. 拉取远程更新并默认使用远端的文件进行合并
|
||||||
|
echo 正在从 origin/Dev 拉取更新...
|
||||||
|
git fetch origin Dev
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo 错误: 无法从 origin/Dev 拉取更新。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo 正在使用 'theirs' 策略进行合并...
|
||||||
|
git merge --strategy=recursive --strategy-option=theirs
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo 错误: 合并失败,请解决冲突或检查仓库。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 6. 确保 LFS 文件完整
|
||||||
|
echo 正在拉取 LFS 文件...
|
||||||
|
git lfs pull
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo 错误: Git LFS 拉取失败,请检查 LFS 配置。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 7. 检查仓库完整性
|
||||||
|
echo 正在检查仓库完整性...
|
||||||
|
git fsck --full
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo 错误: Git fsck 检测到仓库存在问题,请调查。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 8. 暂停执行
|
||||||
|
echo 所有步骤完成,执行成功。
|
||||||
|
pause
|
||||||
|
|
||||||
|
我希望在第REM4阶段
|
||||||
|
echo 错误: 你有未跟踪的文件,请先将文件添加或忽略它们。
|
||||||
|
这里给出选择,是否使用 提交文件.bat
|
||||||
|
确认的话就是打开当前目录下的该bat文件
|
82
本地提交文件.bat
Normal file
82
本地提交文件.bat
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
@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
|
Loading…
Reference in New Issue
Block a user