Git Add Another Remote to an Existing Repository: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 34: Line 34:
  github git@github.com:NovaOrdis/novaordis-session-servlet.git (fetch)
  github git@github.com:NovaOrdis/novaordis-session-servlet.git (fetch)
  github git@github.com:NovaOrdis/novaordis-session-servlet.git (push)
  github git@github.com:NovaOrdis/novaordis-session-servlet.git (push)
  origin https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (fetch)
  origin https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (fetch)
  origin https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (push)
  origin https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (push)


and [[.git/config]] is updated accordingly
and [[.git/config]] is updated accordingly

Revision as of 21:57, 11 December 2017

Internal

Overview

This article describes the procedure of adding a second remote to an existing repository. A practical situation when we would need something like this is when we developed an an application in an internal repository - for example a Gogs instance deployed within an OpenShift cluster - and we want to share the example in GitHub, while maintaining the internal repository fully operable. We start from a local repository fully synchronized with the Gogs repository:

git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
git remote -v show
origin	https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (fetch)
origin	https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (push)

Procedure

Create the Second Repository

Use GitHub's UI. For consistency, use the same repository name, though it is not necessary.

Add the Second Remote

From the local repository, add the GitHub remote:

git remote add github git@github.com:NovaOrdis/novaordis-session-servlet.git

The remote is immediately added:

git remote -v show
github	git@github.com:NovaOrdis/novaordis-session-servlet.git (fetch)
github	git@github.com:NovaOrdis/novaordis-session-servlet.git (push)
origin	https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (fetch)
origin	https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git (push)

and .git/config is updated accordingly

...
[remote "github"]
       url = git@github.com:NovaOrdis/novaordis-session-servlet.git
       fetch = +refs/heads/*:refs/remotes/github/*