为什么Git会将删除与重命名/复制混淆?

9
状态报告目前显示如下内容:


(来源:gyazo.com)

然而,当我执行以下命令时:

git rm include/oogl/Buffer.hpp

会出现以下情况:


(来源:gyazo.com)

我该如何只删除该文件并保留其他文件?

把文本保存为图像,只需要粘贴它就可以了,这样更容易吗? - ДМИТРИЙ МАЛИКОВ
1
当我提出这个问题时,我不知道如何从Windows控制台复制。 - Overv
1个回答

14

Git只是在删除文件。重命名是根据两个文件中相同内容的数量启发式地检测的,但此信息未存储在提交中。当您以后查找提交时,Git将再次根据新文件和已删除文件仅基于启发式方法来确定是否发生了重命名。所以不用担心。

(请参见Git FAQ,第"为什么git不能“跟踪”重命名,特别是这段文字:"Git有一个重命名命令git mv ,但这只是为了方便。效果与删除文件并添加具有不同名称和相同内容的其他文件无法区分。"


1
我的记忆有些模糊,但我认为有一个设置可以确定文件需要多接近才能被视为重命名。 - R. Martinho Fernandes
@Martinho:我在git config的手册中找不到这样的设置,尽管我找到了一个影响它将检查多少文件进行重命名的设置。 - cdhowie
默认限制相似度降至50%以下时,不再被视为“重命名并修改”,而是“删除-添加”。 - user502515
2
и·ҹиҝӣдёҖдёӢпјҢ@Martinho/cdhowieпјҡеңЁgit-mergeдёҠдҪҝз”Ёrename-threshold=<n>пјҢеңЁgit-diffдёҠдҪҝз”Ё-M[<n>]жҲ–--find-renames[=<n>]еҸҜд»ҘжҺ§еҲ¶йҮҚе‘ҪеҗҚжЈҖжөӢзҡ„зӣёдјјеәҰйҳҲеҖј... - johnny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接