2011-04-14 22 views
11

我在git中合併了兩個分支,每個工作周都有一定的工作量,一些文件被移動或重命名和修改。我如何告訴Git它有移動/重命名錯誤(誤報)

Git似乎在某些情況下得到的東西完全錯誤,它說文件a被移到文件b,但實際上它們完全不相關。

我有很多這樣的誤報(大約25%)。我想影響Git使用的算法來確定文件是否被移動,重命名或是新的。

  • 我想給名稱分配更高的優先級。 (文件a被從文件夾foo移動到文件夾b),但git堅稱它被重命名爲文件夾foo中的文件b - 完全不相關)
  • 我想提高Git認爲文件的相似性索引重命名/移動

我知道我在某處讀過,我可以做後者,我希望我也可以做前者,但是我的google搜索技巧今天失敗了。

+2

請注意,即使您找到了改變啓發式的方法,它也只適用於您的本地機器。正如'git mv'命令是'git rm'和'git add'的縮寫,沒有關於重命名的元數據。 – 2011-04-14 10:01:51

+0

。這比很好。現在,當我做差異時,它看起來像垃圾,我無法分辨真正發生了什麼變化。這就是我的目標 - 能夠可靠地看到*真正改變了什麼,並在需要時進行調整。 – 2011-04-14 10:09:20

回答

5

我也注意到了這一點。我認爲「--find-renames = 90」將比默認值更嚴格。

從git的差異文檔 http://git-scm.com/docs/git-diff

-M [n]的 --find-重命名[= N] 檢測重命名。如果指定了n,則它是相似度指數的閾值(即,與文件大小相比的添加/刪除的量)。例如,-M90%表示git應該考慮刪除/添加對是一個重命名,如果超過90%的文件沒有改變。

-C [n] --find-copies [= n] 檢測副本以及重命名。另見--find-copies-harder。如果指定了n,則它具有與-Mn相同的含義。

+0

看起來像是從kernel.org移出的文檔,還有另一個地方可以查看它嗎? – R0MANARMY 2012-05-08 17:24:44

+0

這是給我一個錯誤。你可以更具體的語法嗎? git --find-renames = 100 未知選項:--find-renames = 100 – anon58192932 2014-11-12 00:59:45

相關問題