#git #gitlab
#git #gitlab
Вопрос:
В этом сценарии у меня есть 3 ветки:
- мастер
- dev1
- dev2
Я создал dev1 и dev2 из master при фиксации «a». Я объединяю dev1 в master с коммит «b», «c» и «d». у master теперь есть коммиты a> b> c> d
В то же время я работаю над dev2 и выполняю коммиты «e», «f» и «g». Если я сейчас выполню команду (в ветке dev2)
git pull origin master
Моя ветка dev2 будет содержать все изменения (если нет конфликтов) из коммитов a, b c d, e f g.
Или он просто удалит изменения локально, чтобы их снова зафиксировали?
В этом сценарии я должен был продолжать разработку на dev2, но без головной боли, снова беспокоясь о dev1. Т.е. я хочу удалить dev1 и включить все изменения в dev2, чтобы продолжить разработку в ветке dev2… является ли извлечение лучшим способом сделать это?
Ответ №1:
Продолжайте dev2
. Скажите git fetch
, чтобы убедиться, что все обновлено. Теперь скажите git rebase master
. Теперь вы вызвали e
(и что следует) цепочку до конца d
, что дает вам это:
a - b - c - d (master)
e - f - g (dev2)
… это похоже на то, что вы хотите. Что касается dev1
, если вам это ни для чего не нужно, просто удалите его; это стало более или менее бессмысленным после того, как вы объединили его master
.
(Из вашего описания не совсем ясно, что, если вообще что-либо, вы хотите сделать master
, поэтому в моих инструкциях я оставил это там, где оно есть.)