【问题标题】:How to restore history of improperly moved file in git?如何在git中恢复不正确移动文件的历史记录?
【发布时间】:2015-04-27 12:28:20
【问题描述】:

我在我的存储库中移动了文件,但 git 没有将其检测为移动。它检测到删除和添加文件。我做出了这个改变,然后做了很多其他的事情。之后我意识到我看不到移动文件的历史记录。

我找到了错误的原因,现在我想知道如何解决这个问题。

有没有办法恢复文件的历史记录?

这个Viewing GIT history of moved files 解决方案不能解决我的问题,因为我没有正确移动我的文件。所有历史都丢失了。

【问题讨论】:

标签: git


【解决方案1】:

首先,我认为您误解了git 中的重命名。对于git,文件永远不会被“不当移动”,因为git 跟踪内容而不是文件和文件名。 git 的创建者 Linus Torvalds 谈到了重命名:

git 实际上甚至不关心内部的整个“重命名检测”,并且您对重命名所做的任何提交都完全独立于我们随后用来显示重命名的启发式方法。1

所以实际上可能发生的是git log --follow 对您不起作用,因为--follow 仅检查默认情况下相似度为 50% 的文件的重命名。但是,您的文件可能只有 20% 或 30% 与其重命名的版本相似。尝试使用低于 50% 的不同值的 --find-renames=<n>,看看是否能解决问题:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2011-04-20
    • 1970-01-01
    • 2012-08-06
    • 2019-05-05
    • 2011-05-27
    • 1970-01-01
    相关资源
    最近更新 更多