How to change the fork that a repository is linked to

GitGithub

Git Problem Overview


I have a repo called at MAIN/repo.git and I've forked it to FORK/repo.git. I have both of these repos cloned onto my computer for different purposes.

Using Github for Windows, a bug seems to have switched FORK/repo.git over to MAIN/repo.git, as when I do git remote show origin, the Fetch URL and Push URL are set to the main repo. How can I switch this back so the corresponding folder on my local machine points to FORK/repo.git, instead of MAIN/repo.git?

Git Solutions


Solution 1 - Git

The easiest way would be using command-line git remote, from within your local clone of FORK:

git remote rm origin
git remote add origin https://github.com/user/FORK.git

Or, in one command, as illustrated in this GitHub article:

git remote set-url origin https://github.com/user/FORK.git

A better practice is to:

  • keep a remote referencing the original repo
  • make your work in new branches (which will have upstream branches tracking your fork)

So:

git remote rename origin upstream
git branch -avv # existing branches like master are linked to upstream/xxx

git remote add origin https://github.com/user/FORK.git
git checkout -b newFeatureBranch

Whenever you need to update your fork based on the recent evolution of the original repo:

git checkout master
git pull # it pulls from upstream!
git checkout newFeatureBranch
git rebase master # safe if you are alone working on that branch
git push --force # ditto. It pushes to origin, which is your fork.

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
QuestionzebraView Question on Stackoverflow
Solution 1 - GitVonCView Answer on Stackoverflow