Create new github repo from command line
Note: While the below is a great way to do it yourself, hauleth suggested Hub which does all this and more!
Create a new shell script called "git-create"
#!/bin/sh
repo_name=$1
test -z $repo_name && echo "Repo name required." 1>&2 && exit 1
curl -u 'your_github_username' https://api.github.com/user/repos -d "{\"name\":\"$repo_name\"}"
As tchaudhri mentioned in the comments, don't forget to make the above script executable by running chmod +x git-create
.
Make sure you save it somewhere on your PATH. If you don't have a directory for custom shell scripts on your PATH, you can save it in ~/bin and then add that to your PATH by editing ~/.bash_profile as follows:
PATH=$PATH:~/bin
export PATH
Now you can easily create a new github repo from with the following command:
git create mynewrepo
If you assume this command is run from a valid local git repo (or the folder containing what should become the repo) you can add the following lines to "git-create" to automatically add the remote:
git init
git remote add origin "https://github.com/your_github_username/$repo_name.git"
git init
is safe and won't mess anything up if the local repo already exists.
Enjoy!
Again, Hub recommended by hauleth does all this and more!
Related protips:
Written by Raine
Related protips
9 Responses
Or you can use Hub which provide some more features.
Good to know! Thanks hauleth!
As already stated, Hub is a really great library for this kind of thing.
You can alias the hub command in your .dotfiles like so
hub_path=$(which hub)
if [[ -f $hub_path ]]
then
alias git=$hub_path
fi
that gives you the additional github commands
git pull-request Open a pull request on GitHub
git fork Make a fork of a remote repository
on GitHub and add as remote
git create Create this repository on GitHub and
add GitHub as origin
git browse Open a GitHub page in the default browser
git compare Open a compare page on GitHub
Some Shell Scripts for github
https://github.com/rShetty/Scriptomaniac
if not using Hub, but instead this method - you still need to remember to 'chmod +x script_name' the script file.
Great point tchaudhri, thanks!
Great point tchaudhri, thanks!
Fine! just modify it if you want to use a token, it's mandatory if you're using a 2 factor authentication:
curl -H "Authorization: token $TOKEN" https://api.github.com/user/repos -d "{\"name\":\"$repo_name\"}"