Git ребазинг вперед / назад между двумя ветвями - PullRequest
1 голос
/ 06 марта 2012

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

Местные филиалы (такие же, как на источнике):

  • Мастер
  • branch_a (вырезано из мастера)
  • branch_b (вырезано из branch_a)

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

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

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

1 Ответ

1 голос
/ 06 марта 2012

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

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

...