【问题标题】:Check commit where a file's history was lost检查文件历史丢失的提交
【发布时间】:2016-05-10 07:21:38
【问题描述】:

我丢失了文件中的一些提交。如果我检查项目的历史记录,提交就在那里,但它们不在文件的历史记录中。我怀疑某个团队成员在合并冲突中在文件上使用了git reset,在重置时丢失了历史记录,但我不确定。

如何找到文件在哪个提交中丢失了历史记录?

我尝试了几种方法都没有运气。我试过git log --follow {file},这会获取丢失的提交,但它没有显示历史丢失的提交。

【问题讨论】:

  • git-blamegit-annotate 都提到了-S 选项,它允许您指定自己的修订列表(用作参考源而不是git-rev-list 输出)。
  • 如果你不能让它以更好的方式工作,请检查 git 的 bisect 命令,将故障点归零。 webchick.net/node/99
  • 使用git biscet 非常有帮助。虽然 git 告诉我问题首先在 Commit X 中被发现,但事实并非如此,但有问题的提交是它的祖父(2 父提交方式)

标签: git git-commit git-checkout git-reset


【解决方案1】:

您可能是正确的,更改在拙劣的合并中丢失了,git log 默认情况下不显示合并提交,除非文件与合并的 both 父文件不同。要包含这些提交,请使用git log --full-history <filename>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-02
    • 2012-02-29
    • 2013-12-18
    • 1970-01-01
    • 2021-12-12
    • 2021-12-07
    • 2017-10-31
    • 2012-08-06
    相关资源
    最近更新 更多