-M[<n>], --find-renames[=<n>]
Detect renames. If n is specified, it is a threshold on the similarity index (i.e. amount of addition/deletions compared to the file’s size).
For example, -M90% means Git should consider a delete/add pair to be a rename if more than 90% of the file hasn’t changed. Without a % sign,
the number is to be read as a fraction, with a decimal point before it. I.e., -M5 becomes 0.5, and is thus the same as -M50%. Similarly, -M05
is the same as -M5%. To limit detection to exact renames, use -M100%. The default similarity index is 50%.
3条答案
按热度按时间3df52oht1#
没有必要,只要重命名文件即可。Git会检测重命名,无论是否使用了
git mv
。试试看:以正常的方式重命名它,在旧的和新的名称下暂存文件(或者只是执行
git add .
),然后在控制台中运行git status
,它应该显示为重命名,而不是创建和删除,所以历史记录总是被保留。fzsnzjdm2#
Git不会存储文件被重命名的信息,它只在执行diff时检测到重命名(在
git diff
/status
/log
/etc中)。(源代码)有一个选项
-M
可控制此重命名检测的级别。请尝试使用:
对于VS Code,你可以使用GitLens扩展,它提供了一个选项来控制这个阈值,这个设置叫做
similarityThreshold
。尝试将其设置为
10
并通过GitLens检查历史记录,它应该能更好地检测到文件重命名。jaql4c8m3#
由于git有时无法检测重命名操作,我在Visual Studio Code中安装了这个扩展,到目前为止,它似乎可以很好地重命名文件,并在下面执行
git mv
:https://marketplace.visualstudio.com/items?itemName=ambooth.git-rename
README.md的一个很酷的地方是,在重命名过程中可以指定一个新的目录位置:
用法
在文件资源管理器中右键单击一个文件,然后选择“重命名(git-mv)"。使用出现的输入文本字段,输入新名称并按Enter键。注意:也可以通过调整路径来更改目录位置。