【Git】项目代码强制重置为仓库主分支,重新拉取代码
·
Git 强制拉取更新
有时,当本地代码改得乱七八糟,需要丢弃所有改动跟远端保持一致,那么按照下面的内容操作。
一定要注意:该操作会永久删除本地未提交的修改,操作前请备份!
快速开始
精简版
git fetch --all && git reset --hard origin/master && git pull
分步执行
# 1. 获取远端信息
git fetch --all
# 2. 重置本地到远端状态
git reset --hard origin/master
# 3. 拉取最新(可选,确保完全同步)
git pull origin master
命令说明
git fetch --all
从所有远端仓库下载最新信息,但不修改本地代码。执行后 origin/master 指向远端最新位置。
git reset --hard origin/master
将本地代码完全重置为远端状态。所有未提交的修改都会丢失。
reset 的三种模式:
| 模式 | 效果 |
|---|---|
--soft |
只移动 HEAD,不修改暂存区和工作目录 |
--mixed |
移动 HEAD + 重置暂存区 |
--hard |
全部重置(高危) |
git pull origin master
从远端拉取最新代码并合并。在 reset 之后通常是多余的,但可以确保完全同步。
注意事项
- 备份修改:操作前用
git stash保存重要修改 - 确认分支:有些项目用
main而不是master - 多仓库:有多个 remote 时指定具体名称
- 恢复误操作:已提交的可用
git reflog恢复,未提交的文件无法恢复
常用命令
# 查看远端分支
git branch -r
# 查看当前状态
git status
# 备份修改
git stash push -m "backup"
# 查看操作历史
git reflog
# 恢复误操作
git reset --hard HEAD@{1}
实际场景
- 不要频繁强制推送(
git push --force),会打乱其他开发者的提交历史 - 如需强制推送,提前通知开发者团队
参考链接:
更多推荐




所有评论(0)