Git — Могу ли я извлекать коммиты в удаленную ветку из обновленной другой ветки?

#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 , поэтому в моих инструкциях я оставил это там, где оно есть.)