如何恢复git历史记录

时间:2018-03-15 14:03:37

标签: git github git-branch

我们的一位开发人员将文件从一个分支复制到另一个分支,并重写了该文件的历史记录。恢复它的最佳方法是什么。

   original__________________________________________________(commits d)____(commits e)___(no commit history for a, b, c in master)
    |                                            |
    |                                         (copied)
    |                                            |
    |                                            |
    |__(commits a)__(commits b)___(commits c)_____

1 个答案:

答案 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

这应该这样做。