Я создал патч из трех коммитов, используя
git format-patch <revision_three_commits_ago>
Это создает три файла патча, которые я отправил по почте из своего ноутбука и прочитал почту на своем настольном компьютере (оба окна Windows).
Когда я делаю сейчас
git am --3way --ignore-space-change *.patch
применяются исправления, но я не получаю одинаковые идентификаторы SHA1 для коммитов. Поиск немного в исправленных файлах, я обнаружил, что измененные строки на моем настольном компьютере заканчиваются на LF
, тогда как измененные строки на ноутбуке (где я создал патч) заканчиваются на CR LF
.
Итак, моя первая мысль заключалась в том, чтобы называть git am
без --ignore-space-change
, но это дает мне ошибку (патч не применять).
Как я могу сказать git format-patch
или git am
о том, как обрабатывать окончания строки (msysgit 1.7.4)?
Нужно ли мне принимать VIM и изменять формат файла с UNIX
до DOS
, прежде чем я могу применить исправления?
РЕДАКТИРОВАТЬ: Даже модификация файлов патчей с помощью VIM не помогает: я думал, set ff=dos
и :%s/^M//g
помогут, но это не так!
По моему мнению, применение патча должно привести к тому, что точно тот же контент, а также тот же самый хеш-хэт, как я вытащил из другого репо, где был создан патч. Я думаю об этом неправильно?