我可以强制Git将文件视为副本进行差异比较吗?

9
在git中,diff功能具有“复制检测”——如果它检测到一个新文件实际上是现有文件(可能被修改)的副本,diff输出将显示源文件和新文件之间的差异,而不仅仅是从空文件到新文件的一堆添加。据我所知,git diff使用一些启发式方法来检测这种情况。不幸的是,它没有将一个特定的新文件检测为另一个文件的副本,因为我猜它已经改变了太多。我仍然想查看差异,就好像它是一个副本。有没有办法告诉git diff新文件是另一个文件的副本,以便它可以为我执行此操作?
3个回答

2

git diff(至少在我的版本1.5.6中)带有开关--find-copies-harder,它比常规的-C进行更多的CPU密集型复制检测。


我尝试了--find-copies-harder,但它仍然没有将我的新文件检测为现有文件的副本。 - nohat

0
你尝试过将两个文件放入差异比较器中吗?
类似这样的操作。
git diff --stat -p --find-copies-harder -- src/OldFile.java src/main/NewFile.java

我想你这么做是为了以防万一...


0

只是想确保它已经被添加到了 Git 仓库。

如果你知道原始文件,为什么不直接使用 diff 呢?


直接使用diff效果很好,但我希望将diff包含在我的git diff结果中。 - nohat
新文件已添加到Git仓库中吗? - sfossen

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