2013-05-23 4 views
0

Я смотрю на git diff, большинство из них - это тот же код, перемещенный из одного файла в другой плюс пробел. Как я могу увидеть настоящие различия? Я попробовал git diff -b -C -C безрезультатно.Как увидеть изменения git после перемещения кода?

+2

IMO это проблема с рабочим процессом: вы должны сохранять переименования и изменения контента в отдельных фиксациях. Ваша лучшая ставка может переименовать их в прежние имена, изучить изменения и зафиксировать их, если они подходят. Затем сделайте еще одну фиксацию, которая просто переименовывает. В противном случае вы передадите проблему, с которой вы сталкиваетесь в настоящее время, любому, кто просмотрит журналы позже. – kampu

+0

Вы можете попробовать сравнить два файла, используя внешнюю программу просмотра diff, такую ​​как DiffMerge, TortoiseDiff, BeyondCompare и т. Д. –

+0

Я нахожу ваше описание трудным для понимания. Я почти не читал один блок/функцию, перенесенный из 'file-a' в' file-b' (оба они были и существуют). Не могли бы вы предоставить небольшой пример разностного вывода? Пожалуйста, уточните немного больше в своем предложении. –

ответ

1

на основе полезных замечаний kampu в единственный рабочий раствор до сих пор, чтобы переместить код обратно к оригиналу место и diff там.

1

Используйте -M вариант мерзавца дифференциала:

-M[<n>], --find-renames[=<n>] 
     Detect renames. If n is specified, it is a threshold on the 
     similarity index (i.e. amount of addition/deletions compared 
     to the file’s size). For example, -M90% means git should 
     consider a delete/add pair to be a rename if more than 90% 
     of the file hasn’t changed. 

и -w:

-w, --ignore-all-space 
     Ignore whitespace when comparing lines. This ignores 
     differences even if one line has whitespace where the 
     other line has none. 
+0

Это, похоже, не помогает, когда фрагмент кода был перенесен из одного файла в другой, случай, к которому я верю, что OP ссылался. –

Смежные вопросы