2012-03-06 2 views
1

У меня есть следующая ситуация с рабочим потоком git, которая подняла вопрос - можете ли вы переложить назад/вперед между ветвями?Git rebasing назад/вперед между двумя ветвями

Местные отделения (так же как и на происхождение):

  • мастер
  • branch_a (сокращение от мастера)
  • branch_b (сокращение от branch_a)

Перед тем как все сказано и с этим проектом branch_a будет канонической ветвью для функции, которая в конечном итоге закончится мастером.

branch_b был заменен 1-2 раза на branch_a, чтобы получить новую работу. В идеале, вся работа, которая есть в branch_b, останется там и вернется в branch_a.

Каков наилучший способ достичь этого? Можно ли интерактивно переустановить branch_a на branch_b?

+0

Эта стратегия будет особенно полезна для двух разработчиков, которые быстро работают над одной и той же функцией. Если вы вынуждены работать из одной ветви признака, предпосылки для каждой фиксации слишком велики. –

ответ

1

Лучший способ думать о переустановке (ИМХО) - это думать обо всех изменениях между точкой, в которой ветвь отделяется от чего-то еще, и кончик ветки как «набор патчей». Таким образом, ресайзинг действительно просто берет все эти патчи и применяет их к чему-то другому (что может быть новой точкой исходной ветви или может быть где-то еще в дереве целиком).

Итак, да, вы можете переустановить любую ветку на что-нибудь еще , если исправления наносятся на новое место. К счастью, на самом деле это так же можно попробовать, так как вы всегда можете отменить rebase, если он терпит неудачу, потому что исправления не применяются должным образом (и их невозможно исправить, поскольку новое местоположение не содержит критического компонента, который требуется для изменений).

+0

Итак, branch_b можно переустановить на branch_a, чтобы получить последнюю работу, затем можно было бы внести изменения. Когда изменения branch_b хороши, branch_a можно смело переустановить на branch_b, чтобы забрать указанные изменения до того, как они будут встроены в master? Оставляя branch_b существовать как слегка улучшенная, но замороженная branch_a, а branch_a продолжается до заголовка для управления. – nthdegreeburns

Смежные вопросы