Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root


1 badge earned


Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!


Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.


Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!


Sourcetree Push dialog does not show any branches

Git Pull dialog works fine.

However when I press the Push button, the Push dialog shows me an empty list of branches when I am expecting a list of branches available push_dialog.JPGto push

12 answers

1 accepted

18 votes
Answer accepted

In my case it was caused by an older version of git (prior to 2.13.0) not understanding the format option to git branch command. Upgrading to Git 2.23.0 solved the problem.

I am running 3.2.6 and have the same issue. Steps:

1. created repository on
2. cloned repository to local machine to an empty folder
3. copied files into the newly created folder where the .git directory was created
4. using SourceTree, staged all of the files
5. entered commit comment and clicked the commit button (lower right)
6. tried to Push commited files

Result - the push dialog with no branches listed and just a blue spinny for-ever.

This worked for me:


I tried upgrading the Embedded Git used by SourceTree  

(Tools => Options => Git => Update Embedded Git)


Thanks for the link

Like # people like this

But now I get this error when I try to push:

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --tags --set-upstream <repository-name> master:master
Pushing to<my-name>
fatal: '<my-name>' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


Completed with errors, see above.


where <repository-name is the name of the repository I am trying to commit to and <my-name> is the name added to the bitbucket url . Both exist at

I've tried both system git (updated to 2.23) and embedded git (2.21) and neither solved the problem for me. I'm having the problem with both ssh and file system origin repos.

Like Deleted user likes this

I discovered a way to "fix" the problem that is probably also a clue for the bug.

If I set my new branch to track an existing remote branch (doesn't matter which branch) then immediately change it back to track "None", it then shows up in the push dialog.

Like # people like this

You're right, I have the same issue and upgrading Git didn't work, but the trick of tracking/untracking branches did it! Thanks a lot!

Like david_hanson_benenden likes this

The trick of tracking/untracking branches worked for me also.

Like david_hanson_benenden likes this

The trick of tracking/untracking branches worked for me also.

Like david_hanson_benenden likes this

It looks like Atlassian has made a new release of SourceTree:


Has anyone tested whether it fixes this problem of first time local branch not showing in Push Dialog?

Deleted user Nov 01, 2019

I'd like to try it out, but can't find how to download version 3.3.4 of SourceTree.

3.3.4 doesn't seem to be officially released...yet.

This solution worked for me.

Like kadkin likes this

[SOLUTION - setting the merge property in .git/config file]

For me, nothing else worked. So I get into the .git/config file:

The problem there was that the branches didn't have the merge property at all. It was like that:

[branch "feature/labels"]
   remote = origin
[branch "feature/interaction-tools"]
   remote = origin

The solution was to set the merge property:

[branch "feature/labels"]
   remote = origin
   merge = refs/heads/feature/labels
[branch "feature/interaction-tools"]
   remote = origin
   merge = refs/heads/feature/interaction-tools

For me, this setting works (Embeded Git 2.30.2, SourceTree  3.4.4):


Like # people like this

this worked for me. Thank you so much

This also worked for me. Thanks :)

This worked for me, thank you.

(Tools => Options => Git => Update Embedded Git)

I did this in SourceTree 3.4.16. Embedded Git version was about 2.6 then 2.37.
Now I get several Git errors and SSH agent isn't working either anymore.
Reinstalling SourceTree did not solve anything yet. Now my SourceTree is completely destroyed 😑.

After the reinstall of SourceTree I did "Update Embedded Git" again and then clicked on "Embedded". Now everything works.

I tried in tool option and then it worked for me.


This solution worked for me also.

My "System" Git installed by "Docker Toolbox" was "git version".

Thanks for capture!

Same problem here, and this solution worked for me too!

Thanks!  Selecting system made it work.

Selecting the "Update Embedded" in the Tools > Options > Git dialogue worked for me.

Thanks. Solution worked for me too!!

Yes solved the issue. Thanks

Selecting Embedded and restarting SourceTree worked for me. Thank you.

This worked for me, thanks!

Worked for me too!!!! many thanks!!

Worked for me ~ Thanks~

selected Embedded and it works again, thanks. 

Thanks! Works for me as well. 

Worked for me, thanks.

Updating SourceTree or the embedded git didn't solve this issue for me.

Instead, I followed Jason Paulson's comment in a related thread:

- Check (Tools -> Options -> Git -> Push branches)

- Change this setting from "matching" to "simple"

- EDIT: If this setting was already on "simple", try switching it to "matching" (and then back to "simple" if you want)

Yay!...this is the real solution (at least for me).

Here's a little additional information on this issue that I discovered:

The underlying issue is that when using the "matching" setting, the SourceTree push dialog only displays branches that have [branch] entries in the .gitconfig file. My previous solution of manually setting and unsetting the remote tracking branch works because it's causing an .gitconfig entry for the branch to be created.

Like # people like this

My issue is when I tried to push the second time(the first time the branch showed up and I was able to push), the branch was not listed. So I updated embedded git, did not work. Then I changed Tools->Options->Git->Push branches from simple to matching. The local branch showed up. 

Like # people like this

I had a similar problem, but changing simple(which was the default setting) to matching worked for me! XD

Like # people like this

I tried a bunch of the suggestions here, but this is the one that worked for me - although, I changed the setting from 'simple' to mixed. I suspect therefore that the setting itself isn't the issue, but changing it triggers some kind of refresh.

I followed the way mentioned by Yi Han it worked for me.

This was the way that solved it for me, also.

I have tried:

- Check (Tools -> Options -> Git -> Push branches)

- Change this setting from "matching" to "simple"

- Disabling LibHit2 integration

Didn't work.

- Updated git to 2.30 (having Sourcetree 3.4.3)

That worked, for a time. Now I realized I had git problem which was solved by bash command from local git repo:

git push --set-upstream origin master

(or any other branch name)

I had recently updated SourceTree to 3.3.8. I found this problem of local branches to be pushed dialog being  empty. I followed the suggestioon to upgrade Git. I went from 2.12.2 to the latest version, which is 2.25.1. Closed STree and Git. Re-opened both and now STree displays all available branches.

I'm happy.

GIT UPDATE solved this for me :)

You can also right click the branch and select "track remote branch"->"origin/master", then the push button will have number appeared and when you click the push button, your branch will be in the list. 

Same issue here, I just:

  • closed Sourcetree;
  • updated GIT;
  • reopened Sourcetree and viola!


git 2.11=>Git-

我的版本是 SourceTreeSetup-3.3.9


For me, the problem was that the local and the remote branch names didn't match! I simply renamed my local branch (named it exactly the same as remote one) and my local branch magically appeared in the list.

had the same issue here on windows, switch git to embedded version works for me. 

I branched local/[mybranch-didnotpush] to local/[mybranch-thiswillpush], and and pushed local/[mybranch-thiswillpush] to origin/[mybranch-didnotpush].  Then I deleted local/[mybranch-didnotpush], and renamed local/[mybranch-thiswillpush] to local/[mybranch-didnotpush].  Now local/[mybranch-didnotpush] does push.

Suggest an answer

Log in or Sign up to answer
AUG Leaders

Atlassian Community Events