Лучший способ объединить все коммиты, кроме одного - PullRequest
0 голосов
/ 25 мая 2018

Мы используем более или менее Git-поток в качестве нашего рабочего процесса.У нас есть несколько коммитов в принятии.Нам нужно освободить большинство коммитов от принятия к мастеру прямо сейчас, но есть еще один, который все еще нуждается в принятии со стороны бизнеса, и нам придется ждать другого окна развертывания.

Пример коммитов для слияния:

12345
54321 <- don't want to merge this just yet
78945
54789

Итак, я хочу объединить принятие -> мастер, но избегать объединения 54321.

Какой у меня лучший вариант здесь?Откат?Вишня выбрать диапазон коммитов?Мне не нравятся оба этих подхода, есть что-то еще?

1 Ответ

0 голосов
/ 25 мая 2018
  1. Предполагая, что вы находитесь в ветви принятия, сделайте интерактивную перебазировку и поменяйте местами последние два коммита.

    git rebase -i HEAD~2
    

    В редакторе поменяйте местами коммит 12345 и 54321. Результат долженвыглядит примерно так:

    pick 12345 ...
    pick 54321 ...
    

    Сохраните и закройте редактор.

  2. Объедините второй последний коммит из ветви принятия в master.

    git checkout master
    git merge acceptance~1
    

    До:

     54789 - 78945 - 54321 - 12345 (acceptance)
      /
    11111 - 22222 (master)
    

    После:

     54789 - 78945 - 12345 - 54321 (acceptance)
      /                \
    11111 - 22222 --- 33333 (master)
    
...