如何在GIT中处理多个重命名和大规模重构?

时间:2016-09-05 09:22:50

标签: git git-diff

在我们的一个分支机构中,我们正在对代码库进行重大改造,其中涉及大量文件移动到新位置,重命名和编辑/重新排序大量文件。

当我在拉取请求中查看最终差异概述时,我看到很多文件已添加已删除,即使它们已重命名(在相关差异中) - 承认他们被认为是重命名的,但不是总概述。

我尝试将重命名阈值从50更改为25,并且在部分时间内有所帮助(某些文件已重命名且超过75%不同)。

当所有文件似乎已添加已删除而不是已重命名时,进行代码审核会更加困难。

如果我将相似度阈值更改为1% - 它将如何影响差异过程?它可能会误认为文件并认为它们是重命名/复制,即使它们不是?

你如何处理这样的重构?
如何跟踪在拉取请求中更改和重命名的大量文件?

谢谢!

命令行示例。在右侧,相似性阈值降低至25% Command line example. At the right side the similarity threshold is reduced to 25%

P.s我们使用Bitbucket,所以这也是我们关注pr和进行代码审查的地方。但基本上Bitbucket的行为与该部分的git cli相同。

1 个答案:

答案 0 :(得分:1)

我使用Beyond Compare 4进行审核。它提供了所有文件更改/删除/重命名/添加等令人满意的差异。安装后,将.gitconfig更改为如下所示:

[diff]
    tool = bc4

[difftool "bc4"]
    path = "C:/Program Files (x86)/Beyond Compare 4/BCompare.exe"

[merge]
    tool = bc4

[mergetool "bc4"]
    keepTemporaries = false
    trustExitCode = true
    keepBackup = false
    path = "C:/Program Files (x86)/Beyond Compare 4/BCompare.exe"

然后只需运行: git difftool --dir-diff master mybranch