首页 > 解决方案 > 修复 git merge 后两个分支之间的差异

问题描述

我加入了一个项目,其中master分支有一段时间没有动过。开发发生在另一个分支上,没有偶尔合并。现在我想重新建立一个主分支用于稳定代码和开发分支用于正在进行的工作的想法。

因此,我合并了开发分支并解决了冲突,但注意到分支之间的差异仍然存在。开发分支中大约有 40 个文件未被 git merge 考虑在内。合并后 2 个分支之间的差异中找到的解释:GIT似乎是合法的,但现在我的问题是:

如何解决差异并将缺少的文件从开发分支带入主分支?

标签: git

解决方案


显然,作为更广泛问题的一部分,已经提出并回答了这个问题。以下是总结性解决方案的来源:Git Merge - Incomplete, Missing files and Folders

如上面解释链接中所述,丢失的文件已在某个时候在 master 分支中被删除。恢复它们的方法是从日志历史记录中恢复这些文件。

从原始帖子中获取点点滴滴,这就是我所做的:

git checkout master
git diff developBranch --name-status |grep D > ~/deleted_files
git log --name-status > ~/file_history
cat ~/deleted_files | awk '{ print $2 }' | xargs -I haha git checkout developBranch haha
git commit -m 'Restore deleted files...'

感谢上面链接中的 Quang Van、Walter Mundt 和 John Wu。


推荐阅读