Git is a decentralized version control system, meaning that there is no one
superior repository. Every single copy of a Git repository is just as complete
as any other. Of course we can pick one particular repository and declare it
to be the one source of truth, the “upstream” repository. Usually this
upstream repository is then hosted on some server, and if we are interested in
openness and collaboration this server is part of a larger web service, called
a “forge”. Out of these forges GitHub is perhaps the most popular one.
Unfortunately this means if we are interested in contributions we have to make
the GitHub repo our upstream and use its web services and web UI for our
workflow. At least that is the common wisdom, but it does not have to be that
way.
Continue reading…