Но выбор этой опции, похоже, не имеет никакого эффекта.
Да, потому что текущие изменения - это одна из текущих веток, а именно dev.
Ребазинг devповерх devозначает запрет на выполнение операций .
git checkout dev
git rebase master
Это означает: текущая ветка dev: должна быть перебазирована поверх master.
Итак, в SourceTree вам нужно щелкнуть правой кнопкой мыши master(пока выделено dev) и выбрать:
Rebase current changes onto master
Хоу добавляет в комментариях :
Текущее название " rebase current changes onto [branch]" вводит в заблуждение. Посмотрите это обсуждение улучшенияSRCTREE-1578 .
Обнаружив себя сбитым с толку попыткой обновить ветку функций с разработкой и потерпев неудачу, я пришел к выводу, что элемент контекстного меню на левой панели, помеченный « rebase current changes onto $somebranch», на самом деле делает противоположное тому, что предполагает его название:
он перемещает текущую ветку. до состояния $ somebranch;
Другими словами, он перемещается $somebranchв текущую ветку (или в нее ), а не наоборот. (Правильно?)
Предлог « onto» в текущем тексте вводит в заблуждение; это означает, что объект предложения ( $somebranchв моем примере) получит изменения.
На самом деле произойдет обратное.
Отсутствие названия текущей ветки добавляет путаницы.
Изменение формулировки, улучшающее структуру предложения и включающее имя затронутой ветки, принесло бы огромную пользу для ясности.
Например:
rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch