Git二次合并feat分支时部分文件未创建的问题解决咨询
解决Git合并回退后再次合并丢失文件的问题
核心原因
你之前用git revert -m 2撤销了feat到master的合并提交,这个操作会把第一次合并带来的所有修改(包括新增文件)全部回滚。当你再次合并feat时,Git会认为master中“删除这些文件”的操作是最新状态,而feat里未修改的文件属于旧内容,因此不会自动恢复。
解决方案步骤
- 拉取最新的master分支:
git checkout master git pull origin master - 找到那次revert提交的ID:
执行git log,找到标注为Revert "Merge branch 'feat' into master"的提交,复制它的哈希值(例如a1b2c3)。 - 撤销之前的revert操作:
这个命令会生成新提交,恢复第一次合并feat到master的所有内容,同时保留后续master上的修改。git revert a1b2c3 - 合并feat分支:
此时Git会正确识别所有文件:之前被revert删除的文件会被恢复,后续master和feat的修改会正常触发冲突(如有),你可以逐一解决。git merge feat - 提交并推送结果:
git commit git push origin master
关键说明
- 撤销revert的操作不会覆盖后续修改,Git会自动对比差异,仅恢复被回滚的部分。
- 若撤销revert时出现冲突,说明revert后master修改过相关文件,手动解决冲突后提交即可。
- 操作前建议创建临时分支备份当前状态,避免误操作。
内容的提问来源于stack exchange,提问作者Min Poke
相关产品推荐
相关产品推荐

