重组项目文件夹后丢失git历史记录

ref*_*tis 18 git version-control

我在一个月前做了一个提交,涉及我创建新的文件夹和子文件夹,并在我们之间移动我的源代码文件.我从那时起第一次浏览我的历史并且意识到git已经"丢失"了历史,因为原始文件被删除然后重新添加,我想 - 即当我在我的git GUI中查看文件时(它是根据NDA,所以我不能直接讨论它,但是例如,这个存储库也在GitHub上被破坏.GitHub清楚地显示它将提交检测为一系列动作.)它只显示每个文件的历史记录,当项目文件夹时被重组了.

在阅读了几个问题(获取Git以确认以前移动的文件,如何使git标记为已删除文件和将新文件作为文件移动?)之后,我比起初时更加迷失.从那些答案中听起来我根本无法解决这个问题?我真的很感激这里的任何帮助.

Gia*_*rdi 10

在Git中,没有文件移动的概念.

某些工具(如GitHub)会考虑包含已删除的名为X的文件和已创建文件移动的名为X的文件的提交.

根据Linus Torvalds的说法,文件移动只是重构的一个特例; 因此,Git不会以不同的方式对待它.与许多其他案例一样,这种特殊情况的处理留给了更高级别的工具(例如前端).

有关此主题的更多信息,请查看Linus Torvalds的答案.

  • 我一般都不知道Git,但如果移动它,Github会丢失文件的历史记录.我在我的一个github repos中看到了这个问题,现在我移动了整个目录结构,其中的所有文件现在显示为历史记录中包含1个元素. (2认同)

rio*_*oki 6

据我所知你想要:

git log --follow some_file.cpp
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://git-scm.com/docs/git-log。我不确定这是否是你想要的;但对于 git,git 跟踪内容而不是文件。问题是确定该信息确实非常昂贵,并且假设通常您不需要它......