Может ли git отслеживать базовую ветку? - PullRequest
0 голосов
/ 18 мая 2018

Я вижу много подобных вопросов, но, к сожалению, ни один из них не дает прямого ответа - может ли git отследить базовую ветвь, из которой была создана текущая ветвь?

Рассмотрим следующую структуру ветвей:

master ---c0--c1---
          \
release1   ---c2--c3
              \
feature1       ---?

Ветвь Release1 была разветвленной от master и имела 2 коммита с момента слияния (c2 и c3).Основная ветвь имела 1 коммит (c1), который нигде не был объединен.Ветвь Feature1 была разветвлена ​​от release1 после коммита c2 и еще не имеет коммитов c1 или c3.

Я хочу, чтобы feature1 была «привязана» к release1, то есть она должна получать обновления от release1, но не от master, поэтомуКоманда "git ..." должна объединить коммит c3, но не c1.

Это легко сделать, когда пользователь EXPLICITLY указывает release1 в качестве исходной ветви при выполнении слияния.Мой вопрос - способен ли git запоминать, что текущая ветка основана на release1, и извлекать изменения из release1 BY DEFAULT?

1 Ответ

0 голосов
/ 18 мая 2018

Как указано здесь , это можно сделать, установив [origin/]release1 в качестве восходящей ветви feature1 (при извлечении feature1).

git branch -u origin/release1

(Этотакже был представлен этот ответ с более длинным эквивалентом -u, --set-upstream-to ).

Теперь вы можете просто

git pull --rebase

при включенииfeature1, чтобы автоматически перебазировать (или пропустить --rebase для создания коммита слияния) в ветку HEAD из release1, которая включает c2 и c3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...