Как сообщить Git, что он получил ходы/переименовывает неправильно (ложные срабатывания)

Я объединяю две ветки в git, имея неделю работы, и некоторые из файлов были перемещены или переименованы и изменены.

Git кажется, что в некоторых случаях материал совершенно не прав, и он говорит, что файл a был перемещен в файл b, когда на самом деле они совершенно не связаны.

У меня довольно много таких ложных срабатываний (примерно 25%). Я хотел бы повлиять на алгоритм использования Git, чтобы выяснить, был ли файл перемещен, переименован или является новым.

  • Я хотел бы присвоить более высокий приоритет именам. (файл a был перемещен из папки foo в папку b), но Git настаивает на том, что он был переименован в файл b в папке foo - полностью не связан)
  • Я хотел бы увеличить индекс подобия, над которым Git считает, что файл будет переименован/перемещен

Я знаю, что где-то я читал, что могу сделать последнее, и я надеюсь, что смогу сделать и первое, но мои навыки в поисковых системах сегодня не работают.

Ответ 1

Я тоже это заметил. Я думаю, что "-find-renames = 90" будет более строгим, чем значение по умолчанию.

Из документации git diff http://git-scm.com/docs/git-diff

-M [п] --find-переименовывает [= п] Обнаруживать переименования. Если указано n, это является пороговым значением индекса подобия (то есть количества добавлений/удалений по сравнению с размером файлов). Например, -M90% означает, что git должен рассматривать пару delete/add как переименование, если более 90% файла не изменилось.

-C [п] --find-копии [= п] Обнаруживать копии, а также переименовывать. См. Также --find-copy-harder. Если указано n, оно имеет то же значение, что и для -Mn.