如何在git中恢复不当移动文件的历史记录?

4
我在我的代码库中移动了文件,但是Git没有将其检测为移动操作。它将其检测为删除和添加文件的操作。我提交了这个更改,然后做了很多其他的事情。之后我意识到我无法查看已移动文件的历史记录。
我找到了错误的原因,现在想知道如何解决这个问题。有没有办法恢复文件的历史记录?
这个查看已移动文件的GIT历史记录解决方案不能解决我的问题,因为我没有正确地移动文件。所有历史记录都丢失了。

3
可能是重复的问题:查看Git中已移动文件的历史记录 - dcastro
@dcastro 不是那个的重复。 - B T
1个回答

0

首先,我认为你误解了git中的重命名。对于git来说,文件永远不会因为文件名或路径的改变而“移动不当”,因为git跟踪的是内容而不是文件和文件名。 git的创建者Linus Torvalds在重命名方面有这样的说法:

git内部实际上并不关心“重命名检测”,任何你使用重命名所做的提交都与我们用来显示重命名的启发式算法完全独立。1

所以实际上可能发生的情况是,git log --follow对你不起作用,因为--follow默认只检查相似度达到50%的文件重命名。然而,你的文件可能只有20%或30%的相似度。尝试使用--find-renames=<n>并设置不同的小于50%的值,看看是否可以解决问题:

git log --follow --find-renames=35% path/to/your/renamed/file
  1. http://marc.info/?l=git&m=119638337122721&w=2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接