Why does Git tell me "No such remote 'origin'" when I try to push to origin?

GitGithubPushGit Remote

Git Problem Overview


I am very new to Git; I only recently created a GitHub account.

I've just tried to push my very first repository (a sample project), but I'm getting the following error:

No such remote 'origin'

I ran the following commands:

git init
git commit -m "first commit"
git remote add origin https://github.com/VijayNew/NewExample.git
git push -u origin master

However, when I ran git commit -m "first commit", I got the following message:

nothing added to commit but untracked files present (use "git add" to track)

So then I tried to set origin, using

git remote set-url origin https://github.com/VijayNew/NewExample.git

But I got the following error:

No such remote 'origin'

What did I do wrong, and what should I do?

Git Solutions


Solution 1 - Git

Two problems:

1 - You never told Git to start tracking any file

You write that you ran

git init
git commit -m "first commit"

and that, at that stage, you got

nothing added to commit but untracked files present (use "git add" to track).

Git is telling you that you never told it to start tracking any files in the first place, and it has nothing to take a snapshot of. Therefore, Git creates no commit. Before attempting to commit, you should tell Git (for instance):

> Hey Git, you see that README.md file idly sitting in my working directory, there? Could you put it under version control for me? I'd like it to go in my first commit/snapshot/revision...

For that you need to stage the files of interest, using

git add README.md

before running

git commit -m "some descriptive message"

2 - You haven't set up the remote repository

You then ran

git remote add origin https://github.com/VijayNew/NewExample.git

After that, your local repository should be able to communicate with the remote repository that resides at the specified URL (https://github.com/VijayNew/NewExample.git)... provided that remote repo actually exists! However, it seems that you never created that remote repo on GitHub in the first place: at the time of writing this answer, if I try to visit the correponding URL, I get

enter image description here

Before attempting to push to that remote repository, you need to make sure that the latter actually exists. So go to GitHub and create the remote repo in question. Then and only then will you be able to successfully push with

git push -u origin master

Solution 2 - Git

I'm guessing you didn't run this command after the commit failed so just actually run this to create the remote :

 git remote add origin https://github.com/VijayNew/NewExample.git

And the commit failed because you need to git add some files you want to track.

Solution 3 - Git

I faced this issue when I was tring to link a locally created repo with a blank repo on github. Initially I was trying git remote set-url but I had to do git remote add instead.

git remote add origin https://github.com/VijayNew/NewExample.git

Solution 4 - Git

The following steps work for me:

Init

First, initialize the repository to work with Git, so that any file changes are tracked:

git init

Create alias origin

Then, check that the remote repository that you want to associate with the alias origin exists, if not, create it in git first.

$ git ls-remote https://github.com/repo-owner/repo-name.git/

If it exists, associate it with the remote alias "origin":

git remote add origin https://github.com:/repo-owner/repo-name.git

and check to which URL, the remote alias "origin" belongs to by using git remote -v:

$ git remote -v
origin  https://github.com:/repo-owner/repo-name.git (fetch)
origin  https://github.com:/repo-owner/repo-name.git (push)

Verify alias origin

Next, verify if your alias origin is properly aliased as follows:

$ cat ./.git/config
:
[remote "origin"]
        url = https://github.com:/repo-owner/repo-name.git
        fetch = +refs/heads/*:refs/remotes/origin/*
:

You must see this section [remote "origin"]. You can consider to use GitHub Desktop available for both Windows and MacOS, which help me to automatically populate the missing section/s in ~./git/config file OR you can manually add it, not great, but hey it works!

Pull any contents from remote main branch

$ git pull origin main

This will pull any contents you have on the repository you just aliased to origin to the local repository, including .gitignore, creating the branch main in the process.

Check main branch

$ git branch
* main

This will show you that main branch has been created and you are now on it.

Optional

You might also want to change the origin alias to make it more intuitive, especially if you are working with multiple origin:

git remote rename origin my-super-git-repo

Finally

git add .
git status //If you want to check what's going to be committed
git commit -m 'First commit' //-m is for message
git push origin main

You will see a bunch of lines as follows:

> Enumerating objects: 22, done.
> Counting objects: 100% (22/22), done.
> Delta compression using up to 8 threads
> Compressing objects: 100% (13/13), done.
> Writing objects: 100% (21/21), 4.29 KiB | 292.00 KiB/s, done.
> Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
> remote: Resolving deltas: 100% (2/2), done.
> To https://github.com/repo-owner/repo-name.git

> 948279c..1f3b0b8 main -> main

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionVijayView Question on Stackoverflow
Solution 1 - Gitjub0bsView Answer on Stackoverflow
Solution 2 - GitEmil DavtyanView Answer on Stackoverflow
Solution 3 - Gitishandutta2007View Answer on Stackoverflow
Solution 4 - Gitjumping_monkeyView Answer on Stackoverflow