git перебазировать имя_света, чьи изменения находятся сверху - PullRequest
0 голосов
/ 27 февраля 2020

Если я запускаю эту команду:

git rebase develop и я нахожусь на ветке feature/my-awesome-feature

Что происходит:

1.) develop изменения помещаются поверх feature/my-awesome-feature изменений

2.) feature/my-awesome-feature изменения помещаются поверх develop изменений

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

Но я думаю, что на самом деле все наоборот, и второе утверждение верно ... в то время как я в ветви функций я объединяю изменения разработки, а затем помещаю все изменения этой ветви поверх этих изменений ...

Какое правильное утверждение? И это правильный способ перебазировать ветку перед открытием PR для функциональной ветки в ветку разработки?

1 Ответ

0 голосов
/ 27 февраля 2020

Если вы перебазируете, то вы меняете «базу» своей ветки. Вы начинаете с ветки, в которую хотите перебазировать (develop), а затем выбираете каждый коммит из старой версии вашей ветки поверх новой базы, начинаете с первого расходящегося коммита (первого коммита, который не Вы уже в develop) до последнего коммита.

Итак, учитывая следующее:

A -> B -> C -> D (develop)
       \
        > E -> F (feature/my-awesome-feature)

Если у вас есть feature/my-awesome-feature извлечено и вы запускаете git rebase develop, тогда (при условии отсутствия конфликтов) ваш feature/my-awesome-feature будет выглядеть следующим образом:

A -> B -> C -> D (develop) -> E' -> F' (feature/my-awesome-feature)

Обратите внимание, что E' и F' будут иметь разные хэши (то есть они не являются идентичны E и F), потому что вы изменили историю этих коммитов.

По сути это то, что написано в документации :

Предположим, что существует следующая история, и текущая ветвь имеет вид "topi c":

      A---B---C topic
     /
D---E---F---G master

С этого момента результат любой из следующих команд:

git rebase master
git rebase master topic

будет :

              A'--B'--C' topic
             /
D---E---F---G master
...