代码之家  ›  专栏  ›  技术社区  ›  davidchambers

验证Git commit只移动行

git
  •  0
  • davidchambers  · 技术社区  · 4 年前

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

    0 回复  |  直到 4 年前
        1
  •  1
  •   bk2204    4 年前

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

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

        2
  •  1
  •   Keith Thompson    4 年前

    我不认为Git提供了任何直接的方法来实现这一点,但是如果对文件的旧版本和新版本进行排序会产生相同的结果,那就相当于只包含移动行的更改。

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

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

    Is there a diff-like algorithm that handles moving block of lines?