У меня есть мелкий клон, на котором я сделал три фиксации.
Вот журнал:
$git log --online --graph --decorate --all
* d3456fd (HEAD, мастер) патч 3
* 9713822 патч 2
* 6f380a6 патч 1
* 8a1ce1e (происхождение/мастер, происхождение /HEAD ) из полного клона
* 7c13416 добавлен из неглубоких * 3b3ed39 удален адрес электронной почты
* cfbed6c дальнейшие изменения
* a71254b добавлен для релиза 2.1
* 7347896 (привитые) изменения для релиза 2
теперь я создаю патч отсюда:
$git format-patch -k --stdout origin > ../format_since_origin.patch
Я хочу применить этот патч в другом клоне, который является полным клоном.
Вот журнал:
$git log --online --graph --decorate --all
* 8a1ce1e (HEAD, начало/мастер, мастер) из полного клона
* 7c13416 добавлен из неглубоких * 3b3ed39 удален адрес электронной почты
* cfbed6c дальнейшие изменения
* a71254b добавлен для релиза 2.1
* 7347896 изменений для релиза 2
* b1a8797 изменяет файлы ttwo
* 603710c изменил протокол испытаний
* 16b20b3 добавлен test_report.txt
* f0871ea модифицированный файл1.xml
* dd94bfc добавил file1.xml
* 00758aa second commit
* 49f9968 first commit
Я не могу применить патч, созданный из мелкого клона выше. Я получаю следующую ошибку.
$git am -3/c/temp/ git/format_since_origin.patch
Применение: patch 1
Использование индексной информации для восстановления базового дерева...
Ошибка: исправлена ошибка: file1.c: 6
error: file1.c: патч не применяется
Вы отредактировали свой патч?
Это не относится к блобам, записанным в его индексе.
Невозможно вернуться к трехстороннему слиянию.
Патч завершился неудачей при патче 0001 1
Когда вы решите эту проблему, запустите "git am --resolved".
Если вы предпочтете пропустить этот патч, вместо этого запустите "git am --skip".
Чтобы восстановить исходную ветвь и остановить выполнение патча "git am --bort".
Любая идея, почему этот патч не работает? Или мой метод совершенно не прав?
Update:
Он работает со следующим
$git am -3 --ignore-whitespace/c/temp/ git/format_since_origin.patch Применение: патч 1 Применение: patch 2 Применение: patch 3
Теперь, как предложил Чарльз - если я попробую diff git, я получу ошибку, как показано ниже.
$git diff -p origin > ../dif_origin.patch
При применении,
$git применить --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
error: file1.c: патч не применяется
Ошибка: исправлена ошибка: file1.xml: 2
error: file1.xml: патч не применяется
Ошибка: исправлена ошибка: tr/test_report.txt: 2
error: tr/test_report.txt: патч не применяется