git rebase using sourcetree

前端 未结 1 1986
执念已碎
执念已碎 2021-01-30 12:07

I think I am confused on how to use SourceTree GUI to do git rebase. I have two branches \"master\" and \"dev\". As seen, the two branch diverged. I want to do a rebase on \"dev

1条回答
  •  醉话见心
    2021-01-30 13:03

    But picking this option seems have no effect whatsoever.

    Yes, because current changes are the one of the current branches, which is dev.

    Rebasing dev on top of dev means an no-op.

    git checkout dev
    git rebase master
    

    That means: current branch is dev: to be rebased on top of master.

    So in SourceTree, you need to right-click on master (while dev is checked out), and select:

    Rebase current changes onto master
    

    Howe adds in the comments:

    Current Naming of "rebase current changes onto [branch]" is misleading. Check out this improvement discussion SRCTREE-1578.

    After finding myself baffled attempting to bring a feature branch up to date with development and failing, I've come to realize that the left-pane context menu item labeled “rebase current changes onto $somebranch” actually does the opposite of what its name suggests:
    it rebases the current branch to the state of $somebranch;
    In other words it rebases $somebranch onto (or into) the current branch, not the other way around. (Right?)

    The preposition “onto” in the current text is misleading; it implies that the object of the sentence ($somebranch in my example) will receive the changes.
    In fact, it is the opposite that will occur.
    The absence of the current branch's name adds to the confusion.

    A re-wording that improves the sentence structure and includes the name of the affected branch would afford a huge win for clarity.
    For example:

    rebase $currentbranch to head of $somebranch
    rebase $somebranch onto $currentbranch
    

    0 讨论(0)
提交回复
热议问题