I have been trying to push my local repo changes to github from command line. I have been away from git for a while now so I don\'t remember a few things. For the past hour
The answer by mickiewicz using the REST API via curl
has numerous deficiencies which are addressed in this answer. Notably, this answer:
curl
exit with a nonzero code in case of an error (via -f
)First, obtain a token with access to the repo
scope.
REPO_NAME=foo1
GITHUB_TOKEN=0000000000000000000000000000000000000000 # Enter your own.
curl -f -X POST \
-H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" \
https://api.github.com/user/repos -d "{\"name\": \"${REPO_NAME}\", \"private\": true}"
This answer is relevant only for creating a repository under a user. The request for creating a repository under an organization is slightly different.
If you don't mind installing the GitHub CLI, refer to the answer by VonC instead.
Github API should make work.
First create repo using curl
and API
https://developer.github.com/v3/repos/#create
something like:
curl -u 'username' https://api.github.com/user/repos -d '{"name":"repository name"}'
and then you can add remote and push as you have described before:
git remote add origin git@github.com:user/repository_name.git && git push origin master
You need to create the repo before pushing, but there's hub that automates this for you:
git init newRepo
cd newRepo
hub create
Use the -p
switch to hub create
to create a private repository. To push the local master
branch, issue:
git push -u origin HEAD
The tool can also create pull requests, open the project page, check the CI status, clone existing repos by specifying only username/repo
, and a few more things.
The project page suggests aliasing git
to hub
(because the latter forwards unknown commands to git
), but I don't recommend this, even if just to distinguish "bare" Git commands from the hub
candy.
cli.github.com is now the successor of hub.
It allows for repository creation from command line, since cli 0.6, and PR 547
Create a new GitHub repository.
Usage:
Create a new GitHub repository.
Use the "
ORG/NAME
" syntax to create a repository within your organization.Usage:
gh repo create [<name>] [flags]
Flags:
-d, --description string Description of repository --enable-issues Enable issues in the new repository (default true) --enable-wiki Enable wiki in the new repository (default true) -h, --homepage string Repository home page URL --public Make the new repository public -t, --team string The name of the organization team to be granted access
Global Flags:
--help Show help for command -R, --repo OWNER/REPO Select another repository using the OWNER/REPO format