博客更新
约 867 字大约 3 分钟
2025-11-24
更新操作
使用git-bash命令
使用git-bash,进入博客文章根目录,依次执行:
git add .
git commit -m "change"
git push origin main如果确定需要使用本地内容覆盖远程内容,则使用git push --force origin main。
使用bat批处理脚本push
将下面的bat文件保存到~/push.bat,执行脚本即可将博客源码更新到私有仓库上,这样就不用打开git-bash再依次输入那三条指令这么麻烦了。
~/push.bat
@echo off
chcp 65001 >nul
echo 正在执行Git提交和推送...
echo.
echo [1/3] 添加所有文件到暂存区...
git add .
if %errorlevel% neq 0 (
echo 错误:添加文件失败!
pause
exit /b 1
)
echo ✓ 文件添加成功
echo.
echo [2/3] 提交更改...
git commit -m "change content"
if %errorlevel% neq 0 (
echo 错误:提交失败!可能没有需要提交的更改。
pause
exit /b 1
)
echo ✓ 提交成功
echo.
echo [3/3] 推送到远程仓库...
git push origin main
if %errorlevel% neq 0 (
echo 错误:推送失败!请检查网络连接和权限。
pause
exit /b 1
)
echo ✓ 推送成功
echo.
echo 所有操作完成!
pause使用远程仓库代码覆盖本地代码
要完全用远程仓库代码覆盖本地代码(丢弃所有本地修改和提交),请按顺序执行以下命令。此操作会永久删除你本地未推送的更改和提交,请务必先确认是否需要备份!
终极解决方案(安全且彻底)
# 1. 先取消所有未提交的更改(丢弃工作区修改)
git reset --hard
# 2. 获取远程最新代码(不合并)
git fetch --all
# 3. 重置本地分支到远程分支状态(关键步骤!)
git reset --hard origin/main
# 4. (可选)清理未跟踪的文件和目录(如node_modules等)
git clean -fd依次运行以上4个命令,就可以安全地将远程仓库的代码覆盖到本地。
⚠️ 重要警告(必读!)
- 不可逆操作
git reset --hard会永久删除:- 所有未
git add的修改 - 所有已
git add但未git commit的暂存区文件 - 本地分支比远程多出的所有提交
- 所有未
- 适用场景 ✅ 本地代码完全损坏需要重建 ✅ 误操作后想彻底回退到远程状态 ✅ 在干净的机器上重新部署项目 ❌ 不要用在有重要未提交代码的场景
- 安全替代方案(推荐优先尝试) 如果只是想解决冲突而非丢弃所有代码,用这个安全流程:
# 1. 保存当前修改(创建临时提交)
git add .
git commit -m "WIP: Temporary save before pull"
# 2. 拉取远程代码并合并
git pull origin main
# 3. 如果冲突,手动解决后提交
git add .
git commit -m "Merge remote changes"push时报错
当推送时遇到如下报错,一般是push的内容与远程仓库上的内容产生冲突,需要自己分辨。一般建议是先使用上一小节第3点的安全替代方案。

如果确定需要使用本地内容覆盖远程内容,则使用git push --force origin main。
push.bat报错
点击push.bat时遇到下图所示的情况,只需要删除原来的push.bat文件后再新建一个,将第一节中使用bat批处理脚本push的代码复制进新的文件即可。
