Skip to content

Instantly share code, notes, and snippets.

@c0ldlimit
Created November 16, 2012 17:14
Show Gist options
  • Save c0ldlimit/4089101 to your computer and use it in GitHub Desktop.
Save c0ldlimit/4089101 to your computer and use it in GitHub Desktop.
Git: Push a new or existing repo to Github
# Create a new repository on the command line
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/c0ldlimit/vimcolors.git
git push -u origin master
# Push an existing repository from the command line
git remote add origin https://github.com/c0ldlimit/vimcolors.git
git push -u origin master
@juan-calle
Copy link

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

i saw that vs code does it for you without us having to go to github to create one first

Alternatively, if you prefer to do this stuff from your CLI, you can install github for your terminal and then is as simple as typing:
gh repo create your_repo

@KannanKB
Copy link

KannanKB commented Jul 4, 2021

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

This was the doubt revolving around for me

@KannanKB
Copy link

KannanKB commented Jul 4, 2021

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

i saw that vs code does it for you without us having to go to github to create one first

Thanks, but is there sequence or steps to be followed for VS code to create it for us

@KannanKB
Copy link

KannanKB commented Jul 4, 2021

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

i saw that vs code does it for you without us having to go to github to create one first

Alternatively, if you prefer to do this stuff from your CLI, you can install github for your terminal and then is as simple as typing:
gh repo create your_repo

👍 but it I tried it the command through git bash, 'bash: gh: command not found' is the error

@killshot13
Copy link

killshot13 commented Jul 8, 2021

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

I saw that vs code does it for you without us having to go to github to create one first

Alternatively, if you prefer to do this stuff from your CLI, you can install github for your terminal and then is as simple as typing:
gh repo create your_repo

👍 but it I tried it the command through git bash, 'bash: gh: command not found' is the error

@KannanKB okay, so Git Bash and GitHub CLI are two completely different pieces of software. It is easy to get the two mixed up, but remember, Git =/= GitHub.

Git (git) is a version control system accessible from the command line, and Git Bash is a program that allows the developer to use Git on Windows since Git by itself can only be installed on Linux.

GitHub (gh) is a company that provides free hosting for open-source code repositories along with some helpful tools. One of their more recent releases was the GitHub CLI, which actually uses Git under the hood, among other technologies, to provide a simple way of interacting with repositories and services on the GitHub platform straight from the command line.

Unlike Git, which is universal, the GitHub CLI does not work on GitBucket, BitBucket, or any other hosting providers for code repositories, nor does it natively provide version control. So to summarize—

Git Bash –

  • Provides a bash shell to run Git commands for version control, pulling/pushing commits to code repositories, and workflow management.
  • An emulator of the traditional Linux Git command line, designed to run on Windows.
  • Terminal commands all begin with git.

Installation link

GitHub CLI –

  • A command-line tool enabling the developer to access pull requests, issues, GitHub Actions, and many other GitHub-specific features without ever leaving the terminal.
  • Terminal commands all begin with gh.

Installation link

@subhashisz
Copy link

If you have a README.md file at remote and u followed the steps then you can not push it by the commands specified. It wont allow you, so when creating a remote repository try to avoid creating README.md file

@killshot13
Copy link

killshot13 commented Aug 15, 2021

If you have a README.md file at remote and u followed the steps then you can not push it by the commands specified. It wont allow you, so when creating a remote repository try to avoid creating README.md file

Good point! I have also encountered this issue, so if you accidentally add some generic files to your remote repo during the creation, and you are not concerned with preserving the existing local git history, you can still connect your codebase to the new remote repository.

NOTE: This method is destructive and you will lose code history if you use this on a mature codebase! Use with caution and discretion. There are other (more complex) solutions out there if you ever need to flush credentials, etc., from production source code.

First, delete any existing .git folders by running sudo rm -rf .git at your local root, and now you can initialize git again with the following.

# at root of local codebase
> git init
> git add --all
> git commit -m 'First commit'

# copy the remote repository URL
> git remote add origin <remote repository URL>
	
# set the new remote
> git remote -v

# now push as you normally would
> git push origin master

@hyoretsu
Copy link

hyoretsu commented Aug 22, 2021

GitHub CLI already seems to do everything for us, aside from creating the folder. (since we wouldn't be able to cd to it before running gh repo) Only thing I haven't figured out is how to initialize the repository without a gitignore.

[alias]
create = !git init && gh repo create $2 --public -y

@hyoretsu
Copy link

GitHub CLI already seems to do everything for us, aside from creating the folder. (since we wouldn't be able to cd to it before running gh repo) Only thing I haven't figured out is how to initialize the repository without a gitignore.

[alias]
create = !git init && gh repo create $2 --public -y

To work around to automate the first commit, I also added -u origin HEAD to my current push alias

[alias]
ps = !git push -u origin HEAD && git push --tags

To sum it up:

mkdir [repo]
cd [repo]
git create [repo]
git add .
git commit -m "commit_message"
git ps

It'd also be great if someone found a good license gen cli. Basically I generated it using GitHub CLI simply by using -l mit, but that creates our first commit already. (which wouldn't be ideal if you want a .gitignore but not one of the premade ones)

@nyakagwafred
Copy link

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

Thanks mate. I was trying to just push without first creating a repo on github 😢

@Adeinfo
Copy link

Adeinfo commented Sep 9, 2021

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

This happened when i tried " git push -u origin main " from my terminal on my PC

@hyoretsu
Copy link

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

This happened when i tried " git push -u origin main " from my terminal on my PC

Tip, using git push -u origin HEAD automates the command to use whichever local branch you're currently in. Also yeah, it's what the error says.
For developers, if you are using a password to authenticate Git operations with GitHub.com today, you must begin using a personal access token over HTTPS (recommended) or SSH key by August 13, 2021, to avoid disruption. If you receive a warning that you are using an outdated third-party integration, you should update your client to the latest version.
You need to create and use a PAT as stated and linked in the article.

@xarmtech
Copy link

Help Please!
i am getting this error after pushing the project to github

PS D:\Unity\ZiaUlQuran> git push origin HEAD:main
Enumerating objects: 4443, done.
Counting objects: 100% (4443/4443), done.
Delta compression using up to 4 threads
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)
Writing objects: 100% (4443/4443), 726.22 MiB | 4.75 MiB/s, done.
fatal: the remote end hung up unexpectedly
Everything up-to-date

@killshot13
Copy link

killshot13 commented Oct 26, 2021

GitHub CLI already seems to do everything for us, aside from creating the folder. (since we wouldn't be able to cd to it before running gh repo) Only thing I haven't figured out is how to initialize the repository without a gitignore.

[alias]
create = !git init && gh repo create $2 --public -y

To work around to automate the first commit, I also added -u origin HEAD to my current push alias

[alias]
ps = !git push -u origin HEAD && git push --tags

To sum it up:

mkdir [repo]
cd [repo]
git create [repo]
git add .
git commit -m "commit_message"
git ps

It'd also be great if someone found a good license gen cli. Basically I generated it using GitHub CLI simply by using -l mit, but that creates our first commit already. (which wouldn't be ideal if you want a .gitignore but not one of the premade ones)

GitHub Licenses API?
It's not a CLI proper but has a lot of potential for getting the license data into the terminal.

@TheAlienMann
Copy link

this should help github documentaion

you need to install “gh”, the doc has explained it pretty well.

@georgiod9
Copy link

But doesn't this add an extra 'master' branch instead of pushing to 'main' branch?

@TheAlienMann
Copy link

But doesn't this add an extra 'master' branch instead of pushing to 'main' branch?

No.

@codewizard13
Copy link

git push -u origin master is now git push -u origin main

Thanks. Commentary or links on why this change was made would be helpful.

@codewizard13
Copy link

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
This happened when i tried " git push -u origin main " from my terminal on my PC

Tip, using git push -u origin HEAD automates the command to use whichever local branch you're currently in. Also yeah, it's what the error says. For developers, if you are using a password to authenticate Git operations with GitHub.com today, you must begin using a personal access token over HTTPS (recommended) or SSH key by August 13, 2021, to avoid disruption. If you receive a warning that you are using an outdated third-party integration, you should update your client to the latest version. You need to create and use a PAT as stated and linked in the article.

I'm a developer. I am trying to do a git push for the first time in several years and am curious to see if this is going to be a blocker for me.

@codewizard13
Copy link

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

This happened when i tried " git push -u origin main " from my terminal on my PC

Thanks! The date was helpful.

@killshot13
Copy link

@codewizard13 in reference to the default branch name change, it remains a controversial topic, but here is a fairly unopinionated synopsis.

@mdphx
Copy link

mdphx commented Apr 5, 2022

Thanks! Worked like a charm. Tried many other suggestions before this one. Thanks again.

@kunalasingh
Copy link

I have a question, we need to create a repo on github first, then only we can push our repo? Can we not directly push a repo to our profile and it creates the repo from the folder name?

@priyanshu1507
Copy link

Just one note: if the repository doesn't exist in Github, first you will have to create it: https://help.github.com/articles/creating-a-new-repository/

i saw that vs code does it for you without us having to go to github to create one first

Alternatively, if you prefer to do this stuff from your CLI, you can install github for your terminal and then is as simple as typing: gh repo create your_repo

Hello, The command 'gh repo create your_repo' is showing invalid

@sophie5555
Copy link

Thanks looks good 👍👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment