Как изменить 6 коммитов на 2 из функциональной ветви в основную ветку - PullRequest
0 голосов
/ 15 октября 2019

Я новичок в Git, так что это может звучать глупо. У меня есть основная ветвь и ветвь функций.

A-> B-> C-> D (HEAD of master)

Из CI создается ветвь объектов C-> M-> N-> O-> P-> Q-> R (Глава ветви функций)

Теперь мне нужно объединить мою ветку объектов с основной веткой, но я хочу, чтобы шесть коммитов, которые я сделал в моей ветви функций, не отражались в моем мастере, вместо этого должно бытьтолько два коммита. Как мы можем это сделать?

Я хочу, чтобы изменения обеих веток были в моей главной ветке.

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Шаг 1. Перебазируйте ваш мастер

Ветка функций Checkout и после запуска проверки: git pull --rebase origin master

Если слияния необходимы, выполните их, зафиксируйте и запустите git rebase --continue

Ваша ветка Feature будет выглядеть так: C-D-M-N-O-P-Q-R

Шаг 2: Сквош

Запуск: git rebase -i HEAD~6 6, потому что вы хотите раздавить последние 6 коммитов.

Первый коммит - «выбрать». Все остальные - «s» (для сквоша)

Шаг 3: Нажмите на репо

Выполните git push -f в ветви функций, чтобы подтолкнуть его иновая история в репо.

Необходим принудительный толчок из-за сквоша и перезаписи истории мерзавцев.

Шаг 4: Слияние с мастером

Оформление вашей основной веткии беги git merge <feature-branch>

0 голосов
/ 15 октября 2019
  1. Отделение функций оформления заказа с git check feature_branch
  2. Сквош C->M->N->O->P->Q->R до C->S с git rebase -i C или git rebase -i HEAD~6
  3. Выполнить ребаз на мастер сgit rebase master
  4. Мастер извлечения с git checkout master
  5. Объединение ветви объектов с мастером с git merge feature_branch

Примечание:

(Если вы добавили feature_branch к удаленному, вы также должны сделать git push -f для feature_branch, чтобы перезаписать удаленный feature_branch)

...