验证Git commit是否只移动行

验证Git commit是否只移动行,git,Git,Git是否提供任何机制来证明提交会移动但不会修改文件中的行?我经常使用-w来确定缩进发生变化的代码段内是否进行了任何更改。如果一段代码是垂直移动的,而不是横向移动的,那么可以做些什么来突出显示移动的部分中的更改吗?不,Git没有提供证明这一点的方法。解析diff输出并验证删除的行组和添加的行组是相同的组应该不会太难。这需要一些脚本,但它是可行的。可能很有趣 如果您希望直观地验证这一点,可以使用--color moved,它将以不同于未移动行的添加或删除的颜色对移动的块进行着色。我认为Git没有提

Git是否提供任何机制来证明提交会移动但不会修改文件中的行?我经常使用
-w
来确定缩进发生变化的代码段内是否进行了任何更改。如果一段代码是垂直移动的,而不是横向移动的,那么可以做些什么来突出显示移动的部分中的更改吗?

不,Git没有提供证明这一点的方法。解析diff输出并验证删除的行组和添加的行组是相同的组应该不会太难。这需要一些脚本,但它是可行的。可能很有趣


如果您希望直观地验证这一点,可以使用
--color moved
,它将以不同于未移动行的添加或删除的颜色对移动的块进行着色。

我认为Git没有提供任何直接的方法,但是如果对文件的旧版本和新版本进行排序会产生相同的结果,这相当于只包含移动线的更改

当然,这不会区分交换两个行块和完全扰乱文件

强调这些变化是另一回事。我几年前提出的这个问题可能与此相关:


没有,但可能会编写一个自定义的diff工具来进行这种分析。到目前为止,我还没有看到任何diff工具(我见过git difftool、phabricator中的differential、bitbucket中的pull请求、github和gitlab)可以这样做。从代码审查的角度来看,如果有什么可以做的话,这将是一件很有趣的事情。让我看看我是否能快速地做一些事情。这是一个用C#编写的基本原型——它使用我的库计算出两个文件之间的差异,然后分析结果来编写一些基本输出。阅读首页上显示的自述文件,了解如何使用及其作用的示例。不幸的是,在使用git difftool时,创建的临时文件的文件名与原始文件名完全不同,因此我不知道如何报告您查看结果的文件。git选项中的一些探索可能会在这方面为您提供一些选项。