[git] How do I push a local repo to Bitbucket using SourceTree without creating a repo on bitbucket first?

As an update to Joe's answer, in that you can script the creation of the repository using the API, only the API call I needed was different. This may be because we are using bitbucket server, and not bitbucket cloud.

To create a new repo within a project on our server, I used:

curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \
http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \
-d '{"scmid":"git", "name":"REPONAME"}'

where USER, PASSWORD, SERVER, PROJECTNAME and REPONAME were of course the desired/required values.

The call is documented in the API reference.

/rest/api/1.0/projects/{projectKey}/repos

Create a new repository. Requires an existing project in which this repository will be created. The only parameters which will be used are name and scmId.

The authenticated user must have PROJECT_ADMIN permission for the context project to call this resource.