Fork and clone are both ways of copying existing repos. Cloning copies an existing repo directly to your local machine (i.e. downloads the repo) and fork copies the repo to your own Github account (and maintains a sort of connection to the original repo). Branch creates a new line of development from a point in an already existing repos history. Branch creates a way to implement new changes and try new additions without affecting the master copy.