git format-patch и ^M в EOL

Я пытаюсь создать патч для файла, который содержит немного ^M в конце строки. когда я редактирую файл, я не вижу ^M, но патч, созданный format-patch, указывает на это в контексте зоны патча. Поэтому, когда я пытаюсь применить его к свежему дереву git, git am ищет этот ^M в конце строки, но не видит его; и это приводит к ошибке.

Любая идея или обходной путь для git format-patch, чтобы перестать принимать это ^M во внимание?

заранее спасибо

PS: для контекста у меня нет прав на запись в это дерево git, поэтому мне нужно делать патчи.

2 ответа

Git указывает CR строк в стиле Windows с помощью ^M. Они должны исчезнуть, если вы преобразуете файл в конец строки в стиле Unix.

Недостатком выключения autocrlf является то, что вывод git diff выделяет символы CR (обозначенные ^M) как ошибки пробела. Чтобы отключить эту "ошибку", вы можете использовать параметр core.whitespace:

ср http://lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/ или этот вопрос Stackru: git-diff игнорировать ^ M

git format-patch --ignore-space-change --ignore-whitespace -1 mychanges.patch

Это помогло мне. Вы можете лучше понять, если прочитаете это.

Другие вопросы по тегам