我在 git 上提交了一个文件,它有几个更改,但与旧文件并没有完全不同。git 没有挑选出更改,而是进行了一次大删除;整个文件和一个大插入;新文件。这是一个错误,显然有很大的未更改部分,例如文件以许多“使用”语句开头,但都没有更改。
这很烦人,因为这意味着我将失去所有“责备”的历史。
有没有办法让 git 重做差异?我能做些什么来导致这种情况?发生这种情况时,我正在从另一个分支合并。
Git 不存储差异,它只是为每个提交存储文件树的一个版本。创建的差异git show
不是存储在 Git 内部数据库中的内容。
-M
在您的情况下,如果您使用选项,您可以看到文件已被重命名git diff
-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.
那应该对你有用。