Ошибка при применении патча в git
У меня есть мелкий клон, на котором я сделал три коммита. Вот журнал:
$ git log --oneline --graph --decorate --all *
патч d3456fd (HEAD, master) 3 *
9713822 патч 2 *
6f380a6 патч 1
* 8a1ce1e (origin / master, origin / HEAD) из полного клона
* 7c13416 добавлено с мелкой
* 3b3ed39 удалено письмо
* cfbed6c дальнейшие модификации
* a71254b добавлен для выпуска 2.1
* 7347896 (привитые) изменения для выпуска 2
Теперь я создаю патч отсюда:
$ git format-patch -k --stdout origin> ../format_since_origin.patch
Я хочу применить этот патч в другом клоне, который является полным клоном.
Вот журнал:
$ git log --oneline --graph --decorate --all
* 8a1ce1e (HEAD, origin / master, master) из полного клона
* 7c13416 добавлено с мелкой
* 3b3ed39 удалено письмо
* cfbed6c дальнейшие модификации
* a71254b добавлен для выпуска 2.1
* 7347896 изменений для выпуска 2
* b1a8797 изменения в двух файлах
* 603710c изменен протокол испытаний
* 16b20b3 добавлен test_report.txt
* f0871ea модифицированный file1.xml
* dd94bfc добавил file1.xml
* 00758aa второй коммит
* 49f9968 первый коммит
Я не могу применить патч, созданный из мелкого клона выше. Я получаю следующую ошибку.
$ git am -3 /c/temp/git/format_since_origin.patch
Применение: патч 1
Использование информации индекса для восстановления базового дерева ...
ошибка: исправление не удалось: file1.c: 6
ошибка: file1.c: патч не применяется
Вы вручную редактировали свой патч?
Это не относится к BLOB-объектам, записанным в его указателе.
Невозможно вернуться к трехстороннему слиянию.
Патч не удалось в 0001 патче 1
Когда вы решили эту проблему, запустите "git am --решено ".
Если вы предпочитаете пропустить этот патч, вместо этого запуститеgit am --skip ".
Чтобы восстановить исходную ветку и остановить исправление, запустите "git am --abort ".
Есть идеи, почему этот патч не работает? Или мой метод совершенно неверен?
Обновить:Работает со следующими
$ git am -3 --ignore-whitespace /c/temp/git/format_since_origin.patch Применение: исправление 1 Применение: исправление 2 Применение: исправление 3
Теперь, как предложил Чарльз - если я попробую git diff, я получу ошибку, как показано ниже.
$ git diff -p origin> ../dif_origin.patch
При подаче заявления,
$ git apply --ignore-whitespace --inaccurate-eof /c/temp/git/dif_origin.patch
c: /temp/git/dif_origin.patch: 9: завершающий пробел.
изменение патча для file1.c
c: /temp/git/dif_origin.patch: 18: завершающий пробел.
залатать этого парня xml
c: /temp/git/dif_origin.patch: 29: завершающий пробел.
fsdfsd
c: /temp/git/dif_origin.patch: 30: завершающий пробел.
залатать этот отчет
ошибка: исправление не удалось: file1.c: 6
ошибка: file1.c: патч не применяется
ошибка: исправление не удалось: file1.xml: 2
ошибка: file1.xml: патч не применяется
ошибка: исправление не выполнено: tr / test_report.txt: 2
ошибка: tr / test_report.txt: патч не применяется