我已经重组了项目文件夹。我看到我在重新构造远程存储库中的文件之前丢失了提交历史记录。
在进行本地重组之前,我拥有历史。 现在,克隆存储库的每个人在重组之前都没有提交历史记录。 无论如何,我可以重建提交历史记录并将其合并到远程存储库吗?
当我尝试此命令时:
git log --follow pom.xml
我可以看到文件的完整历史记录,但是当我不使用--follow时,日志将在重组commit时停止。我希望它显示所有历史记录。有没有什么办法解决这一问题?
答案 0 :(得分:1)
在Git中丢失历史记录的唯一方法是删除提交。这是因为提交是历史记录。没有文件历史记录;只有提交。
使用git log --follow pom.xml
时,您在游说提交历史记录并注意何时触摸了名为pom.xml
的文件,从而告诉Git 合成文件历史记录。 --follow
选项告诉Git,除了检查pom.xml
在提交中是否已更改之外,还应该检查其是否已重命名在那个提交中。如果是这样,Git会检查更早的提交以获取旧名称(包括其完整目录路径)而不是新名称,因此Git不再寻找new/pom.xml
但现在正在寻找old/pom.xml
或其他内容,并为那个文件构建文件历史记录。
如果使用IDE,则IDE必须执行与Git相同的操作-通过选择更改该文件的提交来合成文件历史记录,并检查进程中的重命名操作(如果您要这样做)。 / p>
答案 1 :(得分:0)
最后,我发现这仅是在Bitbucket和Eclipse上存在的问题。 Bitbucket显示对存储库的所有提交,但无法使用--follow命令显示单文件日志。 Eclipse也存在同样的问题。 Intellij正常工作。