0
我最近在分支中使用git mv
对分支文件夹结构进行了很大改动,导致没有添加/删除的文件只是为了保留历史记录而重命名。Git合并保留mv历史
将此分支合并到其他分支会导致添加/删除所有包含内容更改的文件。
Git显然理解自尝试执行删除/添加以来移动的文件。
如何确保我的文件的历史在与重命名文件合并期间保持不变?
我最近在分支中使用git mv
对分支文件夹结构进行了很大改动,导致没有添加/删除的文件只是为了保留历史记录而重命名。Git合并保留mv历史
将此分支合并到其他分支会导致添加/删除所有包含内容更改的文件。
Git显然理解自尝试执行删除/添加以来移动的文件。
如何确保我的文件的历史在与重命名文件合并期间保持不变?
Git实际上并不会跟踪重命名,但通过确定删除的文件和添加的文件的匹配程度来推断它们。有一些配置(和命令行选项),可以帮助检测:
[diff]
renamelimit = 3000
您可以通过设置git config --global diff.renameLimit 3000
。还有一个merge.renameLimit
,但如果未设置,则默认为diff.renameLimit
。不幸的是,我找不到任何记录的默认值,但source code似乎表明400是默认限制。
或者你可以看看-l
选项git diff
以及-M
/--find-renames
选项。