Is it possible to use GitHub and GitLab on one machine?
To use two different you must add your SSH key to both Git servers (Bitbucket, Gitlab, or Github) and configure git with your credentials. If both accounts use the same email address you can use:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
If the accounts use different emails, you must set up each repo with a local configuration file
git config --local user.name "Your Name"
git config --local user.email "[email protected]"
The local config will overwrite the global config. So you can use a global config for the most used account.
Yes you can, you can share the same key between them both (ssh key) or create a new one per git server.
Create a SSH config file
When you have multiple identity files(in your case one for gitlab and one for github) , create a SSH config file to store your various identities.
The format for the alias entries use in this example is:
Host alias HostName github.com IdentityFile ~/.ssh/identity
To create a config file for two identities (workid and personalid), you would do the following:
Open a terminal window.
Edit the ~/.ssh/config file.
If you don't have a config file, create one.
Add an alias for each identity combination for example:
Host github
HostName github.com
IdentityFile ~/.ssh/github
Host gitlab
HostName gilab.com
IdentityFile ~/.ssh/gitlab
This way you can have as many accounts as you wish each one with a different ssh key attached to it.
Yes absolutely! Now that you are using ssh
as the transport, you've done half the job.
GitHub and Gitlab are both remote(central) repositories. It all depends on the remote
you are using to push your commits.
If you have created a project say, on GitHub, and cloned it, you will see that the remote (which is origin
by default) points to the GitHub link. run $ git remote -v
inside the project directory to inspect.
If you want to push the same project on GitLab, all you have to do is add another remote
with a different name.
$ git remote add <different-remote-name> <gitlab-remote-link>
Now whenever you want to update a particular remote, just push to it.