Git合并冲突时将文件完整恢复至预合并状态的方法
解决大规模代码格式化后的分支合并冲突问题
针对大规模自动格式化后,协作分支合并main时出现的大量冲突问题,你可以通过以下流程彻底保留分支的逻辑变更,同时重新生成合规的格式化代码,避免原方案导致的代码破坏:
操作步骤
# 切换到有冲突的协作分支 git checkout conflicted-branch # 暂存本地未提交的变更(如果有的话),确保工作区干净 git stash # 拉取prelint分支,让当前分支回到格式化前的基线 git pull origin prelint # 合并main分支(此时会因格式化差异触发大量冲突) git merge origin main # 恢复所有冲突文件到当前分支的版本(完全保留逻辑变更) git checkout --ours . # 重新执行代码格式化,让代码符合规范 npm run lint # 确认变更内容(仅包含逻辑变更+新的格式调整) git status # 提交最终的合并结果 git add . git commit -m "Merge main branch and reapply code formatting"
关键步骤说明
git pull origin prelint:将协作分支的代码基线对齐到格式化前的状态,和main分支的格式化变更共享同一起点,从根源减少不必要的冲突。git checkout --ours .:直接把所有冲突文件恢复为协作分支的版本,彻底丢弃合并时的冲突标记和混乱代码,完整保留开发者的逻辑修改。- 重新执行
npm run lint:在干净的逻辑代码基础上生成合规的格式,确保最终代码既保留业务逻辑,又符合规范要求。
可选优化
如果不想恢复所有文件,只想针对冲突文件操作,可以用以下命令批量处理:
# 列出所有冲突文件并批量恢复为当前分支版本 git diff --name-only --diff-filter=U | xargs git checkout --ours
内容的提问来源于stack exchange,提问作者MaxPRafferty
相关产品推荐
相关产品推荐

