我们的一位开发人员将文件从一个分支复制到另一个分支,并重写了该文件的历史记录。恢复它的最佳方法是什么。
original__________________________________________________(commits d)____(commits e)___(no commit history for a, b, c in master)
| |
| (copied)
| |
| |
|__(commits a)__(commits b)___(commits c)_____
答案 0 :(得分:2)
从原版创建一个新分支。这是复制文件后每次提交的备份。
git checkout -b backup
现在将原始文件重置为复制文件之前的最后一次提交。
git checkout original && git reset SHA --hard
将分支与提交a-c合并为原始分支。
git merge branchname
检查您的备份并将其重新定位
git checkout backup && git rebase original
您将发生合并冲突,告诉您'已添加x`,解决此冲突并继续使用rebase。
现在回到原版并合并备份
git checkout original && git merge backup
这应该这样做。