在git上移动文件而不更改添加的日期

时间:2014-09-08 20:27:03

标签: git

我的Repository

中的单个文件夹1st Year Project中有很多文件

我只想将它们按学期分类到单独的文件夹中,如:

  • 第二学期课程
  • 第三学期课程

我试图只移动一个文件(Bubble_Sort.cpp)以确定它是否有效

GIT HELP

但是,正如您所看到的,它表示 6分钟之前。但是,我实际上写了 5个月前的程序。此外,我单击该文件以查看提交历史记录,它仅显示重命名后的提交。

No history

它确实认识到它是移动/重命名,但所有提交历史都丢失了。

我浏览了很多在线资料并做了我的研究,但它仍然没用。我用了这个命令:

git mv "1st Year Project Solution\1st Year Project\Bubble_Sort.cpp" "1st Year Project Solution\2nd Semester Programs\"`

如何移动文件以便保存初始创建日期,或者至少在点击历史记录时,该文件的所有提交都应该存在?

2 个答案:

答案 0 :(得分:0)

你做得对。您使用git mv。 Git通过删除原始文件并使用原始内容在新位置创建新文件来处理移动文件。因此,“移动”文件实际上是一个“新”文件而不是旧文件。

这就是为什么对于移动的文件,您只在历史记录中有一个提交。在该提交之前,该文件不存在。话虽如此,您仍然可以使用answer

中提到的git log --follow在移动前查看文件的历史记录

答案 1 :(得分:0)

假设你不关心保留任何现有的SHA,那么这就是运行git filter-branch'并使用文件重写历史记录是他们的新位置。