How to properly rebase in SourceTree?

SourceTree on Windows 7.

Let’s say the following is my starting point:

enter image description here

 C <- master
- A - B <- topic

I want to rebase topic onto master.
My goal is to have:

  C - A - B
  ^       ^
master  topic

but I end up with:

enter image description here

I can then do

git push origin topic -f

and I get the intended result, but what is the proper way to do this in SourceTree?

  • Remove commits from git rebased branch after other commits were done
  • git rebase and file conflict
  • Rebase interactively all commits under feature branch
  • Git fails at rebasing in modified commits
  • change previous commit message after squash, not pushed
  • Git: how to use rebase with theirs strategy
  • Protect a file against modifications in git merge
  • Git pull with rebase causing excessive conflicts. How can I fix our workflow?
  • 2 Solutions collect form web for “How to properly rebase in SourceTree?”

    Update: SourceTree 1.9.1

    You can enable force push in Tools/Options/Git/Enable Force Push. After it is enabled you can check “Force Push” check box in the “Push” dialog.

    Original answer

    You have to do a force push, because topic branch is already published and you are rewriting history. Commits A and B from origin/topic are removed if you rebase.

    You should make a merge if you don’t want to do a force push, specially if you have a team members already working on topic.

    You can’t do a force push with SourceTree for Windows yet (see answers at atlassian forums).
    You can vote for this feature here:

    UPDATE: SourceTree Version 2.2.4 (57) (for Mac)

    Go to SourceTree/Preferences/General and click ‘Allow force push’ towards the bottom.
    Then you can click Force Push in the push dialog.

    Git Baby is a git and github fan, let's start git clone.