I am trying to follow along Michael Hartl's Rails tutorial but I've run across an error.
I signed up on Github and issued a new SSH key and made a new repository. But when I enter the next line into the terminal I get the following error:
Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.
Just wondered if anybody else has run across this problem?
$ git remote add origin git@gitlab.com:abc/backend/abc.git
In this command origin is not part of command it is just name of your remote repository. You can use any name you want.
$ git remote -v
It will gives you result like this
origin git@gitlab.com:abc/backend/abc.git (fetch) origin git@gitlab.com:abc/backend/abc.git (push) origin1 git@gitlab.com:abc/backend/abc.git (fetch) origin1 git@gitlab.com:abc/backend/abc.git (push)
if it contains your remote repository path then you can directly push to that without adding origin again
Then you can add new origin with different name and use that to push like
$ git remote add origin101 git@gitlab.com:abc/backend/abc.git
Or you can rename existing origin name add your origin
git remote rename origin destination
fire below command again
$ git remote -v
destination git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com:abc/backend/abc.git (push)
It will change your existing repos name so you can use that origin name
Or you can just remove your existing origin and add your origin
git remote rm destination
First do a:
then
and voila! Worked for me!
The concept of
remote
is simply the URL of your remote repository.The
origin
is an alias pointing to that URL. So instead of writing the whole URL every single time we want to push something to our repository, we just use this alias and run:git push -u origin master
Telling to git to
push
our code from our local master branch to the remote origin repository.Whenever we clone a repository, git creates this alias for us by default. Also whenever we create a new repository, we just create it our self.
Whatever the case it is, we can always change this name to anything we like, running this:
Since it is stored on the client side of the git application (on our machine) changing it will not affect anything in our development process, neither at our remote repository. Remember, it is only a name pointing to an address.
The only thing that changes here by renaming the alias, is that we have to declare this new name every time we push something to our repository.
git push -u my-remote-alias master
Obviously a single name can not point to two different addresses. That's why you get this error message. There is already an alias named
origin
at your local machine. To see how many aliases you have and what are they, you can initiate this command:This will show you all the aliases you have plus the corresponding URLs.
You can remove them as well if you like running this:
So in brief:
Happy coding.
TL;DR you should just update the existing remote:
Long version:
As the error message indicates, there is already a remote configured with the same name. So you can either add the new remote with a different name or update the existing one if you don't need it:
To add a new remote, called for example
github
instead oforigin
(which obviously already exists in your system), do the following:Remember though, everywhere in the tutorial you see "origin" you should replace it with "github". For example
$ git push origin master
should now be$ git push github master
.However, if you want to see what that
origin
which already exists is, you can do a$ git remote -v
. If you think this is there by some error, you can update it like so:It can also happen if you run the command in directory without git initialized. If that's the case run first:
For those of you running into the ever so common error "fatal: remote origin already exists.", or when trying to remove origin and you get "error: could not remove config section remote.origin", what you need to do is to set the origin manually.
Window's POSH~Git for Windows PowerShell (and GitHub for Windows' app) has a problem with this.
I ran into this, like I do so often, again when setting up my octopress. So, here's how I got it working.
First, check your remotes:
You'll first note that my origin has no url. Any attempt to remove it, rename it, etc all fails.
So, change the url manually:
Then you can confirm it worked by running
git remote -v
again:This has fixed dozens of git repos I've had issues with, GitHub, BitBucket GitLab, etc.