It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Pull creates unnecessary merge commit

Seemingly out of nowhere, SourceTree (1.6.23, Win7 x64) has started creating a new merge commit whenever I pull changes from remote (GitHub), then telling me I am one commit ahead and can push that change back up to origin. When all I did was sync up with the remote branch. If I right click on the last commit from the remote, and choose "Reset current branch to this commit," everything goes back to what I expect. The only box checked on the Pull dialog is "Commit merged changes immediately." I've tried experimenting with unchecking that, or also checking "Create new commit even if fast-forward is possible," or unchecking "Commit...immediately" and only checking "Create new commit..." and that doesn't fix it either.

I've tried to figure this out by removing any possible issues in `.git/config` (no help), as well as `.git/sourcetreeconfig` (no help)–this is when I realized it happens no matter what repo I'm working in.

My coworker has the same setup as me (same OS, same SourceTree version, same repo, same remote), and he does not have this issue.

Having to reset the branch every time I pull doesn't seem like that big of a hassle, but it starts to eat up my time–especially when things run slowly.

Have I changed a setting in SourceTree and just not realized it? 

6 answers

Firstly, you definitely do NOT want to check "Create new commit even if fast-forward is possible". That will result in the behavior you are describing. I'd be curious to see screenshots of your graph before and after a Pull.

Sure, don't know why I didn't think to include some screen shots in my post. And yeah, I _thought_ "Create new commit..." would result in this behavior, which is why I'm so confused as to why this is happening. (I checked the default Git settings, too, to make sure this wasn't set there for some reason: I created a new repo to demonstrate the problem. This is my graph after making a few changes locally: This is my pull dialog: This is my graph after the pull completes: This is my graph after I click "Rest current branch...", which shows what I expect the graph to look like:

Yeah, that's definitely the same behavior as "Create new commit...". When you hit OK on that Pull dialog, check the "Show full output" box in the progress window, and post that output (redact as necessary).

Full output: git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin From 571c9f2..4f288e6 master -> origin/master git -c diff.mnemonicprefix=false -c core.quotepath=false pull origin master From * branch master -> FETCH_HEAD Merge made by the 'recursive' strategy. | 2 ++ 1 file changed, 2 insertions(+) git -c diff.mnemonicprefix=false -c core.quotepath=false submodule update --init --recursive Completed successfully.

We are also experiencing this with one of our developers here is having this same behavior, it's making our commit history an unnecessary mess!  Any suggestions on fixing it?


Check that Sourcetree is using your System Git and then check you ".gitconfig".

Fastforward is probably disabled:


change it to ff=true

Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Sourcetree

Sourcetree for Windows - CVE-2019-11582 - Remote Code Execution vulnerability

A vulnerability has been published today in regards to Sourcetree for Windows.  The goal of this article is to give you a summary of information we have gathered from Atlassian Community as a st...

4,910 views 0 12
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you