What is the difference between
upstream on GitHub?
git branch -a command is done, some branches have a prefix of
remotes/origin/..) while others have a prefix of
This question is tagged with
~ Asked on 2012-02-13 08:35:10
This should be understood in the context of GitHub forks (where you fork a GitHub repo on GitHub before cloning that fork locally).
upstreamgenerally refers to the original repo that you have forked
downstream” and “
upstream”" for more on
originis your fork: your own repo on GitHub, clone of the original repo of GitHub
From the GitHub page:
When a repo is cloned, it has a default remote called
originthat points to your fork on GitHub, not the original repo it was forked from.
To keep track of the original repo, you need to add another remote named
git remote add upstream git://github.com/<aUser>/<aRepo.git>
aUser/aRepo the reference for the original creator and repository, that you have forked)
You will use
upstream to fetch from the original repo (in order to keep your local copy in sync with the project you want to contribute to).
git fetch upstream
git fetch alone would fetch from
origin by default, which is not what is needed here)
You will use
origin to pull and push since you can contribute to your own repository.
git pull git push
(again, without parameters, 'origin' is used by default)
You will contribute back to the
upstream repo by making a pull request.
~ Answered on 2012-02-13 09:10:56
In a nutshell answer.
~ Answered on 2020-12-13 03:34:56