Git: Как мне синхронизировать локальный и вышестоящий репозитории без дублирования коммитов слияния PR?

Мне нужно объединить мою собственную ветку функции запроса на вытягивание с основной веткой моего локального репо. Однако, если сопровождающий основной ветки объединит мой запрос на извлечение, мне придется выполнить еще один коммит слияния. Git не понимает, что я уже объединял одну и ту же ветку ранее, поэтому вместо этого у меня есть 2 коммита слияния для одной и той же ветки.

Как вы, ребята, синхронизируете свои локальные и вышестоящие репозитории без дублирующих коммитов слияния?


person Kausheel    schedule 14.04.2015    source источник
comment
Почему вам нужно слиться с вашим локальным мастером? Почему бы не сделать запрос на извлечение с вашей функциональной веткой?   -  person vguzmanp    schedule 14.04.2015
comment
Я сделал PR с функциональной веткой. Однако, чтобы использовать код для своего приложения, я не могу просто выполнить git checkout функциональной ветки, потому что в других ветках тоже есть код, который мне нужен. Основная ветка — единственная, в которой объединены все функции, так что это ветка, которую мне нужно проверить для моего приложения.   -  person Kausheel    schedule 15.04.2015


Ответы (1)


Если я вас правильно понял, ваш статус примерно такой:

Ваш статус. Функция объединена в восходящей и основной

(Черный = восходящий, синий = функция, зеленый = главный)

Итак, когда вы объединяете восходящий поток с мастером, вы получаете следующее:

Двойное слияние

Вам нужна локальная ветка интеграции и ветка с восходящей синхронизацией. Вы используете локальную ветку интеграции, чтобы объединить свои функции (что вы делаете в master прямо сейчас). И вы используете upstream для отслеживания восходящих слияний.

Когда вы делаете PR и он принимается вверх по течению, вы получаете его как слияние в своей ветке upstream, в то время как ваша локальная ветка интеграции (в данном случае master) не объединяется с веткой feature

Объединять только в восходящем потоке

После этого вы можете безопасно слить upstream в master, и вы получите одно слияние в master. Или, если вы действительно не хотите никаких слияний, вы можете использовать rebase.

Только одно слияние в мастере!

person vguzmanp    schedule 15.04.2015