首页/开发/Git 与协作速查/git merge --continue 完成合并
合并变基与冲突71 条

git merge --continue 完成合并

冲突全部解决并 git add 之后,用它提交合并结果;它与直接 git commit 等价,Semantics 上更明确地表示在推进暂停的合并。

Git 与协作速查开发更新于 2026-10-13

git merge --continue 是什么

git merge --continue 在冲突全部解决并 git add 之后,用来生成这次合并的提交。它等价于直接 git commit,区别在于语义更明确:表达「我正在推进一次被冲突中断的合并」,也不会让人误以为要另写一条新提交。

解决冲突的完整闭环

典型流程是:先用 git status 看清哪些文件处于未合并状态,逐个编辑解决并 git add 标记完成,等状态里不再有未合并路径,再执行 merge --continue 生成合并提交。整个过程的核心动作其实是 add,--continue 只负责最后收口。

基本信息

适用平台Linux / macOS / Windows(Git 2.x)
语法git add <文件> 之后执行 git merge --continue
等价命令git commit,自动带入合并信息
前提所有冲突路径都已标记为解决
提交信息默认为自动生成的合并信息,可用 -m 覆盖
相关命令rebase、cherry-pick、revert 也有各自的 --continue

典型使用场景

  • 完成合并:冲突解决完,用它将结果落成一条合并提交
  • 明确意图:在脚本或团队流程里用它替代笼统的 commit
  • 批量收口:多个文件解决完之后一次性提交
  • 固化流程:在操作文档里写清 add 之后 continue 的标准步骤
  • 排查卡点:反复失败时用它确认是否仍有未解决路径

常用示例

常用示例
git status                      # 查看未合并路径
git add src/login.js README.md  # 逐个标记已解决
git status --short              # 确认没有 UU 状态的文件
git merge --continue            # 生成这次合并的提交
git commit -m 'Merge feature/login'   # 等价的显式写法
git log --graph --oneline -5    # 核对合并结果

卡住时的自查

现象原因处理
提示仍有未合并路径还有文件没解决或没 add用 status 逐个补齐
提示没有正在进行的合并合并已结束或已被中止改用 commit 或查看 log
编辑器打开要求写信息这是默认行为保存退出,或设 GIT_EDITOR=true
提交后文件里仍有标记解决时漏删标记用 diff --check 扫描后补一次提交
仍有未解决文件时,--continue 会再次提示 unresolved。用 git status 列出 both modified 的文件名,逐一处理即可。
只修改文件却忘记 git add,Git 仍然视该文件为未解决,--continue 会持续失败,容易被误判成命令有问题。

易错点

  • 只改文件却忘记 git add,Git 仍视为未解决,--continue 会反复失败
  • 把冲突标记留在文件里直接提交,代码中会残留标记文本,提交前用 git diff --check 扫一遍
  • 编辑器自动打开的提交信息会卡住批量流程,可先设 GIT_EDITOR=true 跳过
  • 合并尚未开始时执行 --continue 会提示没有正在进行的合并,先确认当前状态

数据来源与参考

  • Git 官方文档:git-merge(--continue)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌