branch allows for one or more features to be developed separate from the main line of code.
A clone is a complete copy of a repository that you can edit. This one has developers push and pull to update code.
forking allows for one or more people to take a project to work on it in a different way. To update the original, a pull request must be made on the original.