我在Git中有一个有点令人困惑的问题。
假设,我提交了一个文件dir1/ a .txt, git保存了一个提交历史
现在我需要将文件复制到dir2/A.txt(不是移动,而是复制)。
我知道有一个git mv命令,但我需要dir2/ a .txt具有与dir1/ a .txt相同的提交历史,并且dir1/ a .txt仍然保留在那里。
我不打算在创建副本后更新A.txt,所有未来的工作都将在dir2/A.txt上完成
我知道这听起来很混乱,我会补充说,这种情况是基于java的模块(mavenized项目),我们需要创建一个新版本的代码,以便我们的客户能够在运行时有2个不同的版本,第一个版本将最终在对齐时被删除。
当然,我们可以使用maven版本,我只是Git的新手,对Git在这里能提供什么很好奇。
简单地复制文件,添加并提交:
cp dir1/A.txt dir2/A.txt
git add dir2/A.txt
git commit -m "Duplicated file from dir1/ to dir2/"
然后,下面的命令将显示完整的预拷贝历史记录:
git log --follow dir2/A.txt
要查看从原始文件继承的逐行注释,请使用以下命令:
git blame -C -C -C dir2/A.txt
Git不会在提交时跟踪副本,而是在检查历史记录时进行检测,例如Git blame和Git log。
大部分信息来自这里的答案:用Git记录文件复制操作
简单地复制文件,添加并提交:
cp dir1/A.txt dir2/A.txt
git add dir2/A.txt
git commit -m "Duplicated file from dir1/ to dir2/"
然后,下面的命令将显示完整的预拷贝历史记录:
git log --follow dir2/A.txt
要查看从原始文件继承的逐行注释,请使用以下命令:
git blame -C -C -C dir2/A.txt
Git不会在提交时跟踪副本,而是在检查历史记录时进行检测,例如Git blame和Git log。
大部分信息来自这里的答案:用Git记录文件复制操作