All commits have at least one parent. Commits with more than one parent are called merge commits The child/parent relationship are visualized as train tracks
Exactly the same contents. No difference between server versions and local versions.
Remotes are other clones of your repository, served via a URL Local remotes or remote (SSH/HTTP) remotes
Each commit is a snapshot of all the contents in your repository (not a diff)
This is your repository. Remove it and it’s no longer a repo. Remove all the files, and your files are still there The HEAD file The refs directory The objects directory
Working directory -> Staging area -> Repository (.) -> (index) -> (.git)
A glorified remote Pull requests Web hooks Wikis Organizations Graphs etc.