Git has no concept of hubs or spokes. All repositories are stand-alone, completely independent peers.
You
DO NOT HAVE TO USE GITHUB. There's really no sense in cloning one of the mirrors, as
Ralphbsz points out. Why would you risk using a stale copy?
o.k, let`s shine light on this things:
1st: correct:
nobody is forced to use GitHub to work with git, I thought that was one of the really few things which were often enough cleared up here .
but
everybody can use GitHub, like millions others do (or gitlab or an own server like freebsd.org) .
---
There's really no sense in
cloning one of the mirrors, as
Ralphbsz points out. Why would you risk using a stale copy?
it's the opposite in my example above:
I do not clone the fbsd-GitHub-mirror. Instead I setup my fbsd-GitHub-repo as an fbsd-mirror .
why? simple answer : no more need of
git pull(upstream)/git push(MYorigin)
to the GitHub-repo. So it's
NOT a clone nor a fork, it's a mirror (which can than be cloned to everywhere). but why? because it`s then a read/write mirror instead of readonly.
( while technically a mirror is NEVER readonly because the main thing it does is write and write and write and...)
.....
Furthermore, there's nothing special about the remote called "origin":
"Just like the branch name 'master' does not have any special meaning in Git, neither does 'origin'. While 'master' is the default name for a starting branch when you run git init which is the only reason it’s widely used, 'origin' is the default name for a remote when you run git clone. If you run git clone -o booyah instead, then you will have booyah/master as your default remote branch."
git-scm.com
You don't have to have a remote called "origin" if you don't want to. You can change the URL for the "origin" remote at any time. Git really is distributed and really doesn't care.
Push and pull are standard Git functionality. They have absolutely nothing to do with Github.
yes, that's all correct and a confusing detail for newcomers:
git doesn't care about names,
you even can fork FreeBSD on Github and call it OpenBSD-src
but why are those names widely used and we use it here :
because we can try to talk about the same when we use terms like remote, upstream, origin, fork, clone and so on...
Push and pull are standard Git functionality. They have absolutely nothing to do with Github.
Commit hashes are a function of the state of the tree at a particular change set. They are completely independent of how or where the repository is hosted, and are calculated when
git-commit(1) runs, not when the repository is cloned or when
git-pull(1) is invoked. The default mechanism for a git pull is a
git-fetch(1) followed by a
git-merge(1). The merge might create a merge commit depending on your settings, and this would create a new hash (it is a commit, after all). Existing hashes would not be affected.
absolutely right
I can see why reasonable people would have a problem with contributing freely to a project
beholden to a for-profit company.
not worth to talk about it because that implies that people who contribute to or use GitHub
were not reasonable.
that's all only Blabla . we have e.g. developed openjdk bsd-port on GitHub .
boah , we must have been really unreasonable, so let's delete the openjdk-port from FreeBSD
because we have political incorrectly ran with the devil
what a f*cked up crap-discussion, let's stay technical ;-)
Have a good new year!
Regards