Подтвердить что ты не робот

Объединить ветки без проверки ветки

У меня 3 ветки.

     master [ Live Server]
      \
       stage [ Stage Server Where we test changes; merge commits ]
        \ 
         Dev [ Local Machine ]

Я хотел бы перейти к изменениям. Каждая из этих ветвей настроена на отслеживание друг друга.

Как правило, для перехода к изменениям я делаю это:

git checkout stage && git merge master

Затем я проверяю dev и я делаю то же самое

git checkout dev && git merge stage

Затем нажмите все: git push origin --all

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

Возможно, я использую неправильную терминологию. Я не совсем уверен, правильно ли использую терминологию вверх/вниз по течению.

4b9b3361

Ответ 1

Вы действительно можете "объединить" ветвь B в ветвь A без необходимости проверять ветвь A, , но только если это быстрое слияние.

Вы можете использовать refspec с fetch для выполнения "слияния". Если объединение ветки B в ветвь A с помощью git merge приведет к ускоренному слиянию, вы можете сделать следующее без необходимости проверки A:

git fetch <remote> B:A

Документация

Вышеупомянутый соответствует формату refspec

git fetch <remote> <source>:<destination>

Из документация для git fetch (внимание мое):

Удалена ссылка ref, соответствующая <src>, и если <dst> не является пустой строкой, локальный ref, который соответствует ей, пересылается с помощью <src>.

См. также

Ответ 2

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

Ответ 3

Введите git -forward-merge:

Без необходимости назначения отправления, git-forward-merge <source> <destination> объединяет источник в ветку назначения.

https://github.com/schuyler1d/git-forward-merge