git format-patch в настройке нескольких веток

1. Аннотация

Моя конечная цель состоит в том, чтобы перенести некоторые изменения Клиента, сделанные в ветви Клиента в репозитории linux-kernel, в другой репозиторий linux-kernel, учитывая тот факт, что оба имеют общий базовый тег (например, v4.2, из которого была ветвь Клиента). изначально создан).

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

git diff и GNU diff меня не интересуют, так как я не хочу потерять метаданные фиксации (автор, сообщение и т. д.).

2. Настройка демо

Я создал простой поток git commit, чтобы проиллюстрировать проблему. На следующих графиках изображены настройки филиалов этого демо-репо:

  1. Gitg graph - порядок времени фиксации:

  2. Gitg график - топологический порядок:

  3. Gitk график:

  4. git log --oneline --graph --decorate:

3. Действия по воспроизведению проблемы

  • $ git status
    On branch master Your branch is up-to-date with origin/master. nothing to commit, working directory clean.

  • $ git format-patch BASE
    0001-commit-2-br1.patch

  • $ git checkout BASE
    HEAD is now at 65772fd... commit 3-master

  • $ git apply 0001-commit-2-br1.patch
    error: patch failed: file:1 error: file: patch does not apply

4. Дополнительная информация и вопросы

  • git diff BASE f316460 > my.patch работает! Однако, как указано в аннотации, это не решение для меня.

  • я верю git format-patch просто не достаточно умен в настройке нескольких филиалов. Кто-нибудь сталкивался с такими же проблемами?

  • Существуют ли способы достижения той же цели без git format-patch?

0 ответов

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