Let us jump back a bit and look at the definition of Git: a distributed version control system. Differing from the client-server model, there doesn't have to be a central repository with Git. In fact, every local copy is also a full repository, complete with versioning information. The repositories then sync up with each other:
With repositories set up this way, each user has complete access to the entire project history, and because everything is local on their drive they can perform repository operations very quickly.
Now that we have a big-picture idea of how Git manages everything, let's look at what's going on in one of those rectangles on a user's local machine:
First, we have our Working Directory where we are editing our project files. In Xcode, this will be all of our source code files, and other project resources like storyboards. Once we have decided that we...