Как заставить git am / git применять работу «нечетко», как в команде patch

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

Насколько я могу судить git-am apply очень строгая интерпретация, поэтому все эти исправления полностью отклоняются.

Итак, мой рабочий процесс стал

$ git am ../the-patch.patch
# Fails because the patch doesn't apply cleanly
$ patch -p1 < ../the-patch.patch
# Applies most of the hunks, leaves .rej files for the ones that conflict
# Fix the conflicting hunks manually
$ git am --continue

Было бы неплохо, если бы мне не нужно было запускать патч командной строки, и это могло бы происходить просто как часть команды am.

Запуск с - Флаг -reject , похоже, создает файл .rej со всеми фрагментами в файле в случае конфликта, чего я не хочу.

Запуск с флагом - 3way не выполняется с

fatal: sha1 information is lacking or useless (the-file.java).
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.

Я предполагаю, что это связано с тем, что набор изменений, на котором он основан, отсутствует в репозитории, с которым я сливаюсь.

Есть ли способ заставить git-am применить патч с нечетким соответствием например, команда raw patch создает и создает только файлы .rej, содержащие фрагменты, которые не удалось?

31
задан CodeWizard 15 December 2015 в 14:45
поделиться