Git: Повторите серию коммитов поверх других коммитов - PullRequest
0 голосов
/ 07 ноября 2018

У меня была серия таких коммитов:

A-->B-->C-->D-->E-->F

Коммиты D и более поздние были новой функцией, поэтому я обновился, чтобы коммиты D-->E-->F были отделены от C:

A-->B-->C \ -->D-->E-->F

Теперь я сделал дополнительные коммиты поверх C, поэтому мой репо сейчас выглядит так:

A-->B-->C-->C'-->C'' \ -->D-->E-->F

Я бы хотел воспроизвести коммиты в моей ветви функций (D-->E-->F) поверх C'', поэтому результат:

A-->B-->C-->C'-->C'' \ -->D-->E-->F

Как я могу это сделать?

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Это по существу перебазирование разветвленного кода на родительский.

Ссылка: https://git -scm.com / docs / git-rebase

Сначала нужно оформить ветку, которую нужно перебазировать

git checkout branchD

Затем необходимо выполнить перебазирование с помощью опции "rebase" команды git

git rebase parentBranch

Обратите внимание, что с / без конфликтов будут происходить новые коммиты, и будет создан новый SHA для коммитов.

0 голосов
/ 07 ноября 2018

Ребаз (git rebase) воспроизведет эти коммиты:

git checkout feature
git rebase branchC

Это даст вам:

A-->B-->C-->C'-->C''
                  \
                   -->D'-->E'-->F'

Эти коммиты будут другими:

  • их родители изменились
  • их содержание могло бы измениться, если бы вам пришлось разрешать некоторые конфликты.

Если вы регулярно выполняете эту ребазу, не забудьте активировать rerere.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...