A github fork copies a remote repo to another remote repo under your control. A git clone downloads a remote repo to a local repo on your machine. A git branch lets you commit changes down a path that doesn't affect existing code in the master branch. This is done to prevent bugs caused by big changes to the code base.