Объединять, обновлять и извлекать ветки Git, не используя извлечения - PullRequest
552 голосов
/ 10 июля 2010

Я работаю над проектом, в котором есть 2 ветви, A и B. Обычно я работаю с веткой A и объединяю вещи из ветви B. Для слияния я обычно делаю:

git merge origin/branchB

ОднакоЯ также хотел бы сохранить локальную копию ветви B, так как я могу время от времени проверять ветку без слияния с моей веткой A. Для этого я бы сделал:

git checkout branchB
git pull
git checkout branchA

Есть ли способсделать вышеупомянутое в одной команде, и без необходимости переключать ветви назад и вперед?Должен ли я использовать git update-ref для этого?Как?

Ответы [ 11 ]

0 голосов
/ 25 марта 2019

Еще один эффективный способ сделать это:

git fetch
git branch -d branchB
git branch -t branchB origin/branchB

Поскольку это строчный регистр -d, он удалит его, только если данные где-то еще будут существовать.Это похоже на ответ @ kkoehne, за исключением того, что оно не вызывает.Из-за -t он снова настроит пульт.

У меня была немного другая потребность, чем в OP, который заключался в создании новой ветви функций из develop (или master) после объединениязапрос на извлечение.Это может быть выполнено в одной строке без силы, но это не обновляет локальную ветку develop.Это просто вопрос проверки новой ветки и ее установки на основе origin/develop:

git checkout -b new-feature origin/develop
...