在我目前正在处理的一个项目中,我有一个文件,大致具有以下历史记录:
- 它最初是来自不同项目的文件副本
- 所做的一些更改
- 介于两者之间的某个地方,文件的大部分被认为是不必要的并被删除
- 之后,修改的现有行和另外的新行是通过从原始文件复制创建的,或者作为不在原始文件中的全新行创建的。
现在,我很后悔删除了绝大多数文件,我想恢复到初始文件(大约 100 次提交前(,但除了从那时起的删除之外,进行了所有修改。
换句话说:最新提交中存在的每一行都应该取自该行,不在最新提交中的每一行都应该取自第一次提交。
我怎样才能做到这一点?
我建议使用第三方工具并排显示初始文件和当前文件,然后手动执行修复。不太可能有任何自动解决方案;您可以从第一次提交中git checkout --merge
原始文件,但是如果您不幸,您可能不会遇到合并冲突,如果您幸运并且确实遇到合并冲突,则不太可能是一个非常好的工作场所。