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