Если вы перебазируете, то вы меняете «базу» своей ветки. Вы начинаете с ветки, в которую хотите перебазировать (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