Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制文件历史与Git关联_Git - Fatal编程技术网

强制文件历史与Git关联

强制文件历史与Git关联,git,Git,我重构了一个项目,将文件移动到不同的目录中,并将模块拆分为多个子模块,因此我的文件体系结构现在与以前完全不同 有没有一种方法可以告诉git,它认为被删除的文件实际上只是新文件?我知道,如果我在单独的提交中移动和重命名,git应该自动确定这一点,但我已经完成了重构,不想全部重做 简而言之,我喜欢这样的命令: git associate /path/to/deleted_file /path/to/new_file 不完全是这样。一些Git子命令使用标志,试图更积极地跟踪重命名和副本。例如,git

我重构了一个项目,将文件移动到不同的目录中,并将模块拆分为多个子模块,因此我的文件体系结构现在与以前完全不同

有没有一种方法可以告诉git,它认为被删除的文件实际上只是新文件?我知道,如果我在单独的提交中移动和重命名,git应该自动确定这一点,但我已经完成了重构,不想全部重做

简而言之,我喜欢这样的命令:

git associate /path/to/deleted_file /path/to/new_file

不完全是这样。一些Git子命令使用标志,试图更积极地跟踪重命名和副本。例如,
git log
有一个
--follow
标志,在重命名过程中跟随文件。一些命令具有
-M
-C
标志,它们试图更积极地查找重命名和副本;这些标志采用可选值来指定应视为重命名或复制的阈值。一些子命令甚至有一个
——更难查找副本
,可以更积极地计算重命名和副本


但一般来说,没有。Git实际上并不跟踪你是否复制或重命名了一个文件,它只跟踪内容。

Hmm,这太糟糕了。我无法想象添加到git会有那么难!