Creates a new GitHub repository only using terminal.
Easy way to create a new repository (personal/organization) on GitHub using only the terminal.
- Creates a new local folder
- Initialize a git repository (
git init
) - Creates a
.gitignore
file (optional) - Creates a
LiCENSE
file (optional) - Creates a
README.md
file (optional) - Creates a GitHub repository
- Pushes first commit to the
main
branch
npm install -g git-new
On your terminal
:
git-new
# or
git-new <your_repo_name>
# or
git-new <your_repo_name> --private
Y/N
questions, if no answer is given, the default value isTrue
- All the white spaces in repo's name will be replaced with
_
(e.gyour_repo_name
)
Single GitHub Account
- If you only have one account, you will need:
- Create a Personal Access Token
- Add GitHub
account
andtoken
to.gitconfig
file
Multiple GitHub Accounts
- To use with multiple GitHub accounts, you will need:
- Create a new SSH key
- Config GitHub to use the new SSH public key
- Config ssh
config
file
- Create a Personal Access Token
- Add new GitHub
account
andtoken
to.gitconfig
file
- Add new GitHub
- Create a new SSH key
Personal Access Token
-
Create a GitHub personal access token
-
Add your GitHub
account
andtoken
to yourgitconfig
filegit config --global user.acc "your_github_acc" git config --global user.token "243f93cd40c14c9dd16e29bfff73b6aa5384285e"
-
In
/Users/<your_username>/.gitconfig
, you will have:[user] name = your_name email = [email protected] acc = your_github_acc token = 243f93cd40c14c9dd16e29bfff73b6aa5384285e
-
-
On
Terminal
generate a new SSH keyssh-keygen -t rsa -C "[email protected]" # Generating public/private rsa key pair. # Enter file in which to save the key (/Users/<your_username>/.ssh/id_rsa): /Users/<your_username>/.ssh/id_rsa_dev # Enter passphrase (empty for no passphrase): your_password # Enter same passphrase again: your_password # Your identification has been saved in /Users/<your_username>/.ssh/id_rsa_dev. # Your public key has been saved in /Users/<your_username>/.ssh/id_rsa_dev.pub. # The key fingerprint is: # SHA256:I60nfahisdhfiahsidfhiasdifhiashyH4 [email protected] # The key's randomart image is: # +---[RSA 3072]----+ # | | # | | # | .| # | . ..| # | k S oo1.| # | o +.. .d%+=| # |. . . =.c+ .-+*.| # | p D =a*+.o o...| # |... +Ffff +*f | # +----[SHA256]-----+
-
Add SSH key to your second GitHub account
-
Copy your new public SSH key (ends with
.pub
)cat /Users/<your_username>/.ssh/id_rsa_dev.pub # ssh-rsa AAAAB3Nzafskdlfajsdjflajsdlf ... /qUg/DM= [email protected]
-
On GitHub, go to
Settings
-
Click on
SSH and GPG keys > New SSH key
-
On
SSH keys / Add new
page
-
-
Add New SSH Private Key To List
-
Add the the new ssh key to your ssh list
ssh-add /Users/<your_username>/.ssh/id_rsa_dev # Enter passphrase for /Users/<your_username>/.ssh/id_rsa_dev: your_password # Identity added: /Users/<your_username>/.ssh/id_rsa_dev ([email protected])
-
-
Configure ssh
config
file-
In
/Users/<your_username>/.ssh/config
(create aconfig
if file doesn't exist) -
Add a new Host and point to your private SSH key (without the
.pub
)Host your_unique_profile_name UseKeychain yes HostName github.com User your_new_github_user IdentityFile /Users/<your_username>/.ssh/id_rsa_dev
-
Add a second profile (user1
) to your .gitconfig
file
-
the
user1
will the name of the profile- the name of the profile has to start with
user
and followed by an uniquenumber
(eg.user1
,user2
...)
- the name of the profile has to start with
-
Create a Personal Access Token
-
Add a new user to
.gitconfig
filegit config --global user1.name "your_name" # ^ # └── user1 (user One) git config --global user1.email "[email protected]" # ^ # └── user1 (user One) git config --global user1.acc "your_second_github_acc" # ^ # └── user1 (user One) git config --global user1.token "243f93cd40c14c9dd16e29bfff73b6aa5384285e" # ^ # └── user1 (user One)
In your /Users/<your_username>/.gitconfig
:
[user] # <-------- Default profile
name = your_name
email = [email protected]
acc = your_github_acc
token = 243f93cd40c14c9dd16e29bfff73b6aa5384285e
[user1] # <-------- New profile
name = your_name
email = [email protected]
acc = your_second_github_acc
token = 243f93cd40c14c9dd16e29bfff73b6aa5384285e