在git中,diff功能具有“复制检测”——如果它检测到一个新文件实际上是现有文件(可能被修改)的副本,diff输出将显示源文件和新文件之间的差异,而不仅仅是从空文件到新文件的一堆添加。据我所知,git diff使用一些启发式方法来检测这种情况。不幸的是,它没有将一个特定的新文件检测为另一个文件的副本,因为我猜它已经改变了太多。我仍然想查看差异,就好像它是一个副本。有没有办法告诉git diff新文件是另一个文件的副本,以便它可以为我执行此操作?
git diff
(至少在我的版本1.5.6中)带有开关--find-copies-harder
,它比常规的-C
进行更多的CPU密集型复制检测。
git diff --stat -p --find-copies-harder -- src/OldFile.java src/main/NewFile.java
我想你这么做是为了以防万一...
只是想确保它已经被添加到了 Git 仓库。
如果你知道原始文件,为什么不直接使用 diff 呢?
git diff
结果中。 - nohat