1

我有以下问题: 在一个巨大的存储库中,有一个我感兴趣的类,但它不再在要找到的存储库中。经过一番搜索,我在早期的状态下偶然发现了它,现在我想将这个类追溯到现在。

通常人们会使用 Git 日志来追溯文件的历史(以检查谁修改了该类),但由于这个类被删除或移动,我想找到这个类被删除或移动的提交(特别是找到说明为什么被删除的原因的提交)。因此,我需要一种机制来将该文件的历史追溯到“未来”。

为了可视化这一点,我创建了一个显示一系列提交(气泡)的简单图形:

Log-History 演示 Git 中对象的前向跟踪

  • 红色气泡是不包含该类的提交
  • 绿色气泡是包含类的提交(在某个时间点(1.1),该对象被添加并在代码库中停留了一段时间)
  • 蓝色气泡 (4) 是提交,该类被删除(也是我感兴趣的那个,因为它可能包含原因、删除的原因或移动到的位置)
  • 带有黄色边框的绿色气泡是提交,我在这里找到了课程。

现在以视觉方式:我希望绿线向上到蓝色(1.2 -> 3 -> 4),而当我检查状态 1.2 和通话记录时,我只得到 1.2 -> 1.1。

4

1 回答 1

2

没有简单的方法可以追溯到未来,但您可以搜索历史以找到它消失的地方。

如果您有文件的路径,Git:如何在项目提交历史记录中搜索已删除的文件?显示如何定位提交:

git log -- path/to/file

这将显示所有涉及该文件的提交。然后,您可以检查列出的第一个提交以查看它是删除还是移动。

如果文件的名称与众不同,并且您认为它可能已被重命名:

git log --name-only

您可以在这些结果中搜索文件名。

于 2013-09-26T15:03:38.820 回答