Объедините параллельные ветви в линейную историю Git - PullRequest
0 голосов
/ 04 марта 2019

имеет хранилище с несколькими корнями, похожим на это, где J - это коммит слияния

A---C-D-E-----H-I-J
  B-------F-G----/

Я хочу, чтобы это выглядело так:

A-B-C-D-E-F-G-H-I-J

B должен находиться между A иC, потому что дата фиксации находится между A и C, поэтому итоговую линейную историю нужно объединять на основе даты, я не хочу просто перезаписать одну поверх другой.

Файлы в 2ветви находятся в разных подкаталогах и поэтому не могут создавать конфликты.

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

1 Ответ

0 голосов
/ 04 марта 2019

Когда это основано на дате, вы можете заказать коммиты с помощью git rev-list и затем выбрать их:

git rev-list --date-order --reverse J ^A | xargs git cherry-pick
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...