先说结论:git reset dev 不对,不能对齐远程
git reset dev 含义:把 HEAD 重置到本地的 dev 分支 ,和远程没关系! 远程分支名字是 origin/dev,不是 dev。
✅ 正确命令:本地 dev 分支对齐远程 origin/dev(丢掉本地差异)
# 第一步:拉取远程最新信息(只拉不取合并)
git fetch origin
# 第二步:本地dev强制重置成远程origin/dev版本
git reset --hard origin/dev
⚠️ 风险提醒
--hard会删除你本地所有未提交的代码 + 本地比远程多出来的提交,执行前确认本地改动不需要保留!
拆解区分,别搞混
| 命令 | 含义 |
|---|---|
git reset dev |
重置到本地 dev 分支,不碰远程,几乎没用 |
git reset origin/dev |
默认--mixed模式:撤销本地提交,代码还留在本地文件里(不会删代码,只是取消 commit/add) |
git reset --hard origin/dev |
本地分支、工作区全部强制和远程 origin/dev 完全一致,本地改动全部清空(你要的对齐) |
完整操作步骤
# 1. 切到dev分支
git checkout dev
# 2. 获取远程最新提交记录
git fetch origin
# 3. 本地dev强制对齐远程dev,丢弃本地多出的提交和修改
git reset --hard origin/dev
执行完后,git status 会显示 nothing to commit,本地和远程 dev 完全一样。
补充:如果你不想删掉本地代码,只是想合并远程代码(推荐团队正常做法)
不要用 reset,用 pull:
git pull origin dev
小坑
很多人写错:git reset --hard dev 👉 这个是重置到本地 dev ,不是远程!这就是最常见错误。远程分支必须写 origin/dev。
你要确认:本地的代码改动是否还需要保留?如果还有要保留的代码,千万别直接执行 reset --hard。