git - 保留历史记录的GIT复制文件

  显示原文与译文双语对照的内容

我在GIT中有一个有点困惑的问题。 假设我有一个文件 dir1/A.txt,git保留了提交的历史

现在我需要( 由于某些原因) 将文件复制到 dir2/A.txt ( 不移动但复制) 。 我知道有一个 git mv 命令,但我需要 dir2/A.txt 具有与 dir1/A.txt 相同的历史记录,dir1/A.txt 仍然保留在那里。

一旦创建副本,我就不计划更新 A.txt,并且将来的所有工作都将完成 dir2/A.txt

我们将在运行时创建新版本代码,以便客户在运行时有个不同版本的代码,并在完成校准时将它的删除。 当然,我们可以使用 Maven 版本,我只是GIT中的新手,对这里的GIT可以提供什么。

时间: 原作者:

subversion不同,git没有每个文件的历史记录。 如果查看提交数据结构,它只指向前面的提交和这个提交的新树对象。 提交对象中不存储提交对象所更改的显式信息,也不存储这些更改的性质。

检查更改的工具可以基于试探法检测重命名。 比如"git diff"具有打开重命名检测的选项 -M 。 如果重命名,"git diff"可能向你显示一个文件已经被删除,另一个已经创建,而"git diff -M"将实际检测到移动并显示相应的更改。

因这里在git中,这不是你如何提交更改的问题,而是以后如何查看提交的更改。

...