你知道这种情况,它在你身上发生过一千次:
有哪些方法可以缓解这种情况? 到目前为止我找到的唯一解决方案是自律:强制提交仅包含文件移动和重命名。允许零修改。将其留待后续提交。更好的是:在完全独立的 PR 中进行移动/重命名(以便在 gitlab 或其他工具的“所有更改”视图中仍然可以轻松看到实际更改)
这种方法的困难在于它增加了一些开销。另一个问题是不情愿的开发人员,他们不想遵守这一点或忘记这样做,因为他们看不到他们在提交时看到移动文件中的更改比审阅者更容易读取最终结果。
你知道还有其他方法吗?
是的,你是对的,要么是受到纪律约束,要么是在编辑器中使用内置 UI,但如果你发现自己处于这种情况,那么我希望这会有所帮助:
git config --global diff.renames true
git config --global diff.renameLimit 999999
显示移动文件的差异,忽略移动本身
git diff --color-moved=blocks --find-renames
git log -M -C --stat --follow path/to/file
git show --color-moved=blocks commit_hash
git diff --color-moved=blocks HEAD^..HEAD path/to/new/file
git diff --find-renames=90% --break-rewrites
git format-patch --find-renames --break-rewrites HEAD^
git diff branch1...branch2 --color-moved=blocks --find-renames