git merge с конкретными коммитами - PullRequest
0 голосов
/ 25 сентября 2018

Недавно я перенес нашу кодовую базу с перформанса на github.Я использовал инструмент git-p4 для настройки git-репо и отображений веток вместе с историей коммитов (p4 submit history).Я сталкиваюсь с проблемой слияния двух веток, QA и development, у обоих есть x и y количество коммитов, и x

Теперь, чтобы настроить рабочий процесс git, мне нужно будет объединить разработку в QA (для продвижения QA).), Однако, результатом этого слияния будет воспроизведение всех коммитов разработки на QA.Я не хочу, чтобы это произошло, поскольку это загрязнит QA нежелательной историей развития.Я только хочу объединить новые коммиты, которые находятся на стадии разработки.

Я попробовал следующий подход.

git merge --squash development (this did not work) 

и

git checkout -b qa_cycle_1.0 
git cherry-pick commit1 commit2 . . .
open pull request with qa_cycle_1.0 and QA

Второй подход работает, но он включаетнакладные расходы на сбор вишни и другие вещи могут легко запутаться при объединении исправлений из QA в dev.

Есть ли способ объединить эти две ветви без наследования истории коммитов разработки ?.Мне нужно придумать соглашение, которому должна следовать наша команда.

1 Ответ

0 голосов
/ 25 сентября 2018

Если у вас есть первые n коммитов dev, которые вы делаете не , которые хотите объединить с QA (т. Е. Вы хотите только самые последние m коммитов dev), вы можете:

  • объединить эти первые n коммитов, но с git merge --ours <sha1 of last n commit>: это ничего не изменит в QA, но запишет последний из n коммитов как "объединенный".
  • объединить ветку dev: git merge dev: все коммиты с момента последнего слияния будут объединены.
...