My understanding of Git is the following:
1) Working tree ---> File system where you manually make changes.
2) Staging area ---> Where changes lie until they're committed.
3) Repository ---> Where committed changes go (local or remote).
Essentially what I really want to have is:
1) Working tree - local file directory on my desktop.
2) Staging area - lie on a networked server somewhere.
3) Repository - GitHub to keep track of my source code.
I'm not sure if I have confused myself doing all this reading about Git and whether or not the situation I have just described is actually feasible?
Essentially I want all the developers on my team to have a local working tree copy of the source code, then be able to stage changes to a server on our network, and then from here perform a final commit to GitHub.
Is this correct? Or does the staging area have to be on each local machine?