Прежде всего - я очень мало знаю о git, поэтому я просмотрел другие, возможно, похожие сообщения, но я не знаю, нужны ли они мне. И я знаю достаточно, чтобы знать, что если я запускаю команды, не будучи уверенным, все может пойти еще хуже.
У меня есть ветка (промежуточная), и я использую битбакет для слияния указанной ветки с мастером. Это будет поддерживать быстрое слияние вперед.
Я подумал, что буду умным и попытаюсь запустить слияние из командной строки, чтобы мне не пришлось открывать битбакет.
Итак, из командной строки я сделал следующее
git checkout master
git merge staging
Казалось, работает. Затем я отправил его на битбакет.
Но после этого все попытки использовать мою старую технику теперь требуют, чтобы я выбрал обычное слияние вместо использования быстрой перемотки вперед.
Это все было настроено кем-то другим, и теперь я не знаю, как это исправить.
Если у меня есть мастер и постановка.
И я хочу надежно объединить промежуточные этапы с мастером и сохранить историю и т. д. Мне нужно пройти весь путь битбакета? Что я приобретаю или теряю?
Изменить: забыл добавить, что однажды я случайно зарегистрировался в мастере напрямую. Вернулся к проверке постановки, но я думаю, что это корень моей проблемы.
1 ответ
Чтобы обеспечить быстрое слияние, вам необходимо убедиться, что ваша промежуточная ветка создана из вашей основной ветки.
git checkout master
- переходит на ветку master.
git checkout -b staging
, если промежуточная стадия НЕ существует. идет на постановку.
git checkout staging
, если промежуточная ветвь ДЕЙСТВИТЕЛЬНО существует. Идет на постановку.
Затем вам нужно убедиться, что все коммиты, которые вы добавляете в master, также добавляются в staging — т. е. если вы исправляете ошибку в master, вам нужно применить тот же самый коммит к промежуточной ветке.
Или вы должны убедиться, что вы не добавляете больше коммитов в master, пока работаете над промежуточной стадией. Это не всегда практично. Теперь при слиянии вы получите быструю перемотку вперед, которая не должна иметь конфликтов слияния:
git checkout master
git merge staging
РЕЗЮМЕ: вы не можете избежать конфликтов слияния при работе с git. Самое простое решение — справляться с этими конфликтами, когда они возникают, и сводить к минимуму трудности, связанные с их решением. Совершайте коммиты как можно раньше и чаще, а также сливайтесь так часто, как это практически возможно, чтобы свести к минимуму головную боль.
Похожие вопросы
Новые вопросы
git
Git — это распределенная система контроля версий с открытым исходным кодом (DVCS). Используйте этот тег для вопросов об использовании Git и рабочих процессах. Не используйте этот тег для общих вопросов по программированию, связанных с репозиторием Git. Не используйте этот тег для вопросов GitHub/GitHub Actions, не связанных с использованием git; вместо этого используйте [github] или [github-actions]. Не используйте тег [github] для проблем, связанных с Git, только потому, что репозиторий размещен на GitHub.