如何忽略过往Git Merge记录,重新查看分支间全部文件差异?
解决方法
直接提取目标文件(最简便)
如果只需要获取abc分支里那3个特定文件,不用重新走merge流程,直接从abc分支把文件拉到当前xyz分支即可:
# 替换成实际的3个文件路径 git checkout abc -- path/to/target-file1 path/to/target-file2 path/to/target-file3
执行后这3个文件会直接更新为abc分支的版本,你可以直接查看变更并提交。
查看两个分支的完整差异
如果要忽略过往合并记录,查看xyz和abc分支的所有差异,用以下命令:
# 查看两个分支顶端的全部文件差异 git diff xyz abc # 仅查看单个文件的差异 git diff xyz abc -- path/to/specific-file
模拟全新合并(适合需要完整merge流程的场景)
如果一定要通过merge操作重现当初的6个文件变更,可通过临时分支绕过已有的合并记录:
- 用
git log --oneline找到xyz分支在合并abc之前的提交哈希值 - 基于该历史提交创建临时分支:
git checkout -b temp-merge [合并前的提交哈希]
- 在临时分支上执行合并:
git merge abc --no-commit --no-ff
此时就能看到当初的6个文件变更,手动回退不需要的3个后提交合并结果
4. 回到xyz分支,把临时分支的有效变更合并过来:
git checkout xyz git cherry-pick [临时分支上的合并提交哈希]
- 删除临时分支:
git branch -D temp-merge
内容的提问来源于stack exchange,提问作者Bruno Lamps
相关产品推荐
相关产品推荐

