Adding multiple remotes In general, the purpose is to synchronize this repo with a remote Git repo. To be able to synchronize code with a remote repo, you need to specify where the remote repo exists. The first step is to add remote repos to your project.
Yes. You can put multiple projects in one Git repository but they would need to be on different branches within that repo. The Git console in ReadyAPI gives you the ability to create or switch branches from the UI.
Create a new, empty Git repository on your remote server. Obtain the git remote add URL for the remote repository and add credentials if needed. Run the git remote add origin command from your local repository with the --set-upstream and the name of the active branch to push.
To add a new remote, use the git remote add command on the terminal, in the directory your repository is stored at. The git remote add command takes two arguments: A unique remote name, for example, “my_awesome_new_remote_repo” A remote URL, which you can find on the Source sub-tab of your Git repo.
You can have as many remotes as you want, but you can only have one remote named "origin". The remote called "origin" is not special in any way, except that it is the default remote created by Git when you clone an existing repository. You can configure a second remote, push to/pull from that remote, and setup some branches to track branches from that remote instead of origin.
Try adding a remote called "github" instead:
$ git remote add github https://github.com/Company_Name/repository_name.git
# push master to github
$ git push github master
# Push my-branch to github and set it to track github/my-branch
$ git push -u github my-branch
# Make some existing branch track github instead of origin
$ git branch --set-upstream other-branch github/other-branch
As a side note for anyone stumbling upon this question later, it is possible to have origin push to more than one git repository server at a time.
You can achieve this by using the following command to add another URL to the origin remote.
git remote set-url --add origin ssh://[email protected]/user/myproject.git
Here's a sample project with multiple remotes, GitHub & GitLab:
Add remote repo for GitHub
$ git remote add github https://github.com/Company_Name/repository_name.git
Add remote repo for GitLab
$ git remote add gitlab https://gitlab.com/Company_Name/repository_name.git
Now you have multiple remotes in the project. Double check with git remote -v
$ git remote -v
github https://github.com/Company_Name/repository_name.git (fetch)
github https://github.com/Company_Name/repository_name.git (push)
gitlab https://gitlab.com/Company_Name/repository_name.git (fetch)
gitlab https://gitlab.com/Company_Name/repository_name.git (push)
How do you push to multiple repositories?
$ git push github && git push gitlab
git remote set-url --add --push origin [email protected]:user/my-project.git
git remote set-url --add --push origin [email protected]:user/my-project.git
Now you have 2 origins.
A local repository can be linked to multiple remote repositories.
However only one of those links can be called origin
. The rest of the links need to have different names.
Therefore in order to properly answer this questions we need to understand what origin is.
Let me explain with an example.
Supposed you have a remote repository
called amazing-project
and then you clone that remote repository to your local machine so that you have a local repository
. Then you would have something like what you can see in the diagram below:
Because you cloned the repository. The remote repository and the local repository are linked.
If you run the command git remote -v
it will list all the remote repositories that are linked to your local repository. There you will see that in order to push or fetch code from your remote repository you will use the shortname 'origin'.
Now, this may be a bit confusing because in GitHub (or the remote server) the project is called 'amazing-project'. So why does it seem like there are two names for the remote repository?
Well one of the names that we have for our repository is the name it has on GitHub or a remote server somewhere. This can be kind of thought like a project name. And in our case that is 'amazing-project'.
The other name that we have for our repository is the shortname that it has in our local repository that is related to the URL of the repository. It is the shortname we are going to use whenever we want to push or fetch code from that remote repository. And this shortname kind of acts like an alias for the url, it's a way for us to avoid having to use that entire long url in order to push or fetch code. And in our example above it is called origin
.
So, what is origin
?
Basically origin is the default shortname that Git uses for a remote repository when you clone that remote repository. So it's just the default.
In many cases you will have links to multiple remote repositories in your local repository and each of those will have a different shortname.
So final question, why don't we just use the same name?
I will answer that question with another example. Suppose we have a friend who forks our remote repository so they can help us on our project. And let's assume we want to be able to fetch code from their remote repository. We can use the command git remote add <shortname> <url>
in order to add a link to their remote repository in our local repository.
In the above image you can see that I used the shortname friend
to refer to my friend's remote repository. You can also see that both of the remote repositories have the same project name amazing-project
and that gives us one reason why the remote repository names in the remote server and the shortnames in our local repositories should not be the same!
There is a really helpful video 📹 that explains all of this that can be found here.
you can add another remote account to your repository through giving different name instead of origin. You can use name such as origin2. so your git command can be modified as
git remote add origin2 https://github.com/Company_Name/repository_name.git
git remote add origin2 https://github.com/Company_Name/repository_name.git
and for push use:
git push -u origin2 master
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With