Объединить ветки без проверки ветки
У меня 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
Есть ли способ изменить эти изменения, не проверяя каждую ветвь?
Возможно, я использую неправильную терминологию. Я не совсем уверен, правильно ли использую терминологию вверх/вниз по течению.
Ответы
Ответ 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