标记冲突已解决是什么
在 Git 里「解决冲突」不是一个命令,而是两个动作:先把文件内容改成正确结果,再用 git add 把该文件标记为已解决;被删除的一侧用 git rm 记录。等所有冲突路径都标记完,再按当前所处的操作执行对应的 --continue。
收尾命令取决于你在做什么
合并用 git merge --continue,变基用 git rebase --continue,拣选和回退分别用 git cherry-pick --continue 与 git revert --continue。判断依据是 git status 的首行提示,它会明确写出当前正在进行的操作,不需要凭记忆猜。
基本信息
| 适用平台 | Linux / macOS / Windows(Git 2.x) |
|---|---|
| 标记方式 | git add <文件>,被删除的一侧用 git rm <文件> |
| 收尾命令 | 按操作选择 merge/rebase/cherry-pick/revert 的 --continue |
| 复核标准 | git status 中不再出现 Unmerged paths |
| 中止方式 | 对应操作的 --abort 回到开始前 |
| 状态识别 | 看 git status 的首行提示 |
典型使用场景
- 合并收尾:冲突解决完,标记后执行 merge --continue
- 变基收尾:重放冲突解决完,标记后执行 rebase --continue
- 拣选收尾:把提交复制到别的分支时反复用到同一套流程
- 批量处理:多文件冲突时逐个 add,最后统一收口
- 交接排查:把卡在冲突里的仓库交给同事前,先用 status 说明进度
常用示例
常用示例
git status --short # 列出未合并路径
git add src/api/handler.js # 标记手工解决的文件
git rm legacy/old_module.py # 记录「确认删除」的文件
git status --short # 确认不再有 UU 等状态
git merge --continue # 合并场景收尾
git rebase --continue # 变基场景收尾
git diff --check # 提交前扫描残留标记状态与对应收尾命令
| status 首行提示 | 当前操作 | 收尾命令 |
|---|---|---|
| You have unmerged paths | 合并中 | git merge --continue |
| You are currently rebasing | 变基中 | git rebase --continue |
| You are currently cherry-picking | 拣选中 | git cherry-pick --continue |
| You are currently reverting | 回退中 | git revert --continue |
| nothing to commit | 已无冲突 | 按提示提交或查看 log |
不确定自己处于 merge 还是 rebase 时,看 git status 的首行提示即可,它会直接写出当前正在进行的操作与可用的命令选项。
解决一半就执行 --continue,Git 会提示仍有未合并路径。缺文件时用 git status 逐个补齐,不要跳步。
整个流程里最容易被忽略的一步是 add。改完文件只是让内容正确,只有 git add 之后 Git 才会把它从「未合并」清单里移出去,这也是 --continue 反复报错的常见原因。