Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kosyfrances/dc03897ad4f30b05c2d074010d2b130e to your computer and use it in GitHub Desktop.
Save kosyfrances/dc03897ad4f30b05c2d074010d2b130e to your computer and use it in GitHub Desktop.
How to move to a fork after cloning

If you are like me you find yourself cloning a repo, making some proposed changes and then deciding to later contributing back using the GitHub Flow convention. Below is a set of instructions I've developed for myself on how to deal with this scenario and an explanation of why it matters based on jagregory's gist.

To follow GitHub flow you should really have created a fork initially as a public representation of the forked repository and the clone that instead. My understanding is that the typical setup would have your local repository pointing to your fork as origin and the original forked repository as upstream so that you can use these keywords in other git commands.

  1. Clone some repo (you've probably already done this step).

    git clone git@github...some-repo.git
  2. Manually fork their repo via the Github website directly.

  3. In your local system, rename your origin remote to upstream.

    git remote rename origin upstream
  4. Add a new origin which now points to your fork you just made above (instead of to to the original repository).

    git remote add origin git@github...my-fork
  5. Fetch from new origin.

    git fetch origin
  6. Make local branch "master" track remote branch "origin/master" (ie: remote branch "master" from remote "origin" which you just set above). See more syntax examples here: https://stackoverflow.com/a/2286030/4561887.

    git branch --set-upstream master origin/master (deprecated)

    git branch --set-upstream-to origin/master master
  7. Push to your fork via your "origin" remote (the word origin should be able to be omitted (ie: just write git push) if you did Step 4).

    git push origin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment