Ale wybranie tej opcji wydaje się nie mieć żadnego efektu.
Tak, ponieważ obecne zmiany są jedną z obecnych gałęzi, czyli dev
.
Rebasing dev
na szczycie dev
oznacza brak działania.
git checkout dev
git rebase master
Oznacza to, że: bieżąca gałąź dev
: ma zostać ponownie oparta master
.
Więc w SourceTree, musisz kliknąć prawym przyciskiem myszy master
(gdy dev
jest wyrejestrowany) i wybrać:
Rebase current changes onto master
Howe dodaje w komentarzach :
Obecna rebase current changes onto [branch]
nazwa „ ” jest myląca. Sprawdź tę dyskusję dotyczącą ulepszeńSRCTREE-1578
.
Po tym, jak byłem zaskoczony próbą zaktualizowania gałęzi funkcji do rozwoju i niepowodzeniem, zdałem sobie sprawę, że pozycja menu kontekstowego w lewym okienku oznaczona „ rebase current changes onto $somebranch
” w rzeczywistości działa odwrotnie niż sugeruje jej nazwa:
ponownie bazuje na bieżącej gałęzi do stanu $ somebranch;
Innymi słowy, opiera się $somebranch
na bieżącej gałęzi (lub do niej), a nie na odwrót. (Dobrze?)
Przyimek „ onto
” w aktualnym tekście jest mylący; oznacza to, że przedmiot zdania ( $somebranch
w moim przykładzie) otrzyma zmiany.
W rzeczywistości będzie odwrotnie.
Brak nazwy bieżącej gałęzi dodatkowo pogarsza zamieszanie.
Przeformułowanie poprawiające strukturę zdania i zawierające nazwę gałęzi, której dotyczy problem, przyniosłoby ogromne korzyści dla przejrzystości.
Na przykład:
rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch