Git将本地历史记录合并到远程存储库

时间:2018-07-06 08:50:31

标签: git merge commit

我已经重组了项目文件夹。我看到我在重新构造远程存储库中的文件之前丢失了提交历史记录。

在进行本地重组之前,我拥有历史。 现在,克隆存储库的每个人在重组之前都没有提交历史记录。 无论如何,我可以重建提交历史记录并将其合并到远程存储库吗?

当我尝试此命令时:

git log --follow pom.xml

我可以看到文件的完整历史记录,但是当我不使用--follow时,日志将在重组commit时停止。我希望它显示所有历史记录。有没有什么办法解决这一问题?

2 个答案:

答案 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正常工作。