Я пробовал редактировать php-файл в TextWrangler с концами строк, установленными в Unix, в NetBeans и в vim. Когда я сохраняю diff в патче, а затем пытаюсь применить его, он дает ошибки в пробелах. Когда я набираю git diff
, я могу видеть ^M
на концах моих строк, но если я вручную удалю их в vim, он говорит, что мой файл исправления поврежден, а затем патч не применяется вообще.Мой diff содержит конечные пробелы - как избавиться от него?
создать патч с помощью следующей команды:
git diff > patchname.patch
И я применяю его, проверяя чистую версию файла, который должен быть исправлен и набрав
git apply patchname.patch
Как могу ли я создать этот патч без ошибок пробела? Я создал патчи раньше и никогда не сталкивался с этой проблемой.
Возможно, вы захотите предоставить более подробную информацию о процессе создания патча. – Chronial
Я добавил детали. Не уверен, насколько это полезно, но это не повредит. – beth
Я столкнулся с той же проблемой и сделал некоторые исследования. Похоже, что git автоматически добавляет эти пробелы в 'git diff' и' fit show', поэтому любой патч, сделанный с таким кодом, будет иметь завершающие пробелы. Если локальный репозиторий linux kernel git локально (дерево ядра linus), вы можете запустить 'git show 402bae597e'. Он покажет вам конечное пробел перед статическим DEVICE_ATTR_RO (флаги); и закрывающие фигурные скобки в предыдущей строке, даже если они не присутствуют в коде. – Hamzahfrq