git - 修复 git merge 后两个分支之间的差异
问题描述
我加入了一个项目,其中master分支有一段时间没有动过。开发发生在另一个分支上,没有偶尔合并。现在我想重新建立一个主分支用于稳定代码和开发分支用于正在进行的工作的想法。
因此,我合并了开发分支并解决了冲突,但注意到分支之间的差异仍然存在。开发分支中大约有 40 个文件未被 git merge 考虑在内。合并后 2 个分支之间的差异中找到的解释: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。
推荐阅读
- c# - Gridview.Sort 什么都不排序?
- android - 如何滚动 Recycler 视图并从每张卡片中收集文本?
- macos - AdaCore gnatstudio 构建但不会运行
- java - 在 Spring MVC 应用程序中使用 Jquery 发送多个参数 Ajax 字符串化请求时,不存在必需的字符串参数“querycontent”
- python - Numpy array_equal 和 float 精确相等检查
- html - 如何在移动浏览器上以全分辨率显示图像?
- xamarin.forms - 使用 xam.plugin.media 选择多个图像
- c++ - C ++密码问题
- sql - 基于其他列的 TSQL 更新列
- mysql - 在 MYSQL 表上删除和重新创建索引,它会提高性能吗?