如何在Git中保存合并状态?Gitlab环境合并冲突暂存问题咨询
Git保存未解决合并冲突状态的可行方案
Git原生支持完整保留未完成的合并冲突状态,无需依赖平台UI的合并工具,具体操作可按实际需求选择以下方案:
方案1:本地临时暂存冲突状态
如果仅需要本地中断冲突处理、后续再继续操作,可直接使用Git暂存功能:
- 合并产生冲突后,不要执行
git merge --abort、git mergetool或任何自动解决冲突的命令 - 执行
git stash push --include-untracked,当前带冲突标记的工作区文件、未完成的合并状态会完整存入Git暂存栈 - 后续需要恢复时执行
git stash pop即可回到中断前的状态,所有已解决、未解决的冲突标记都会原样保留,不会被共同祖先版本覆盖
方案2:同步冲突状态到远端
如果需要将冲突状态同步到远端供团队协作处理,可通过专属临时分支留存:
- 合并产生冲突后,保留所有文件中的
<<<<<<<、=======、>>>>>>>冲突标记 - 执行
git add .将所有带冲突标记的文件加入暂存区 - 执行
git commit -m "保存[源分支]与[目标分支]的未完成合并冲突状态"完成本地提交 - 将当前分支推送到Gitlab远端,可开Draft合并请求留存该状态,所有冲突内容会完整展示在MR中
- 后续需要继续处理时直接拉取该分支代码,解决冲突后再走正常合并流程即可
注:你之前使用
git mergetool出现未处理冲突被BASE版本覆盖的情况,是合并工具的默认运行逻辑,只要你不主动调用自动冲突处理能力,Git不会主动修改工作区的冲突标记内容。
内容的提问来源于stack exchange,提问作者IT researcher
相关产品推荐
相关产品推荐

