Some quick definitions that will help you understand what's going on here:
- A branch is a line of development - maybe a new version, or a new feature that someone is working on. They can be merged back together later.
- A git clone fetches all items that make up a remote project and copies them locally into a new, empty directory on your machine.
- A commit is a specific point in the git history - effectively, a contribution to a branch, or a change affecting one of more chunks of the code.
- A git checkout is when you switch from one part of the code to another, such as between branches or back and forth through the commit history.
- A git fetch finds out what the current HEAD is of whatever you have checked out, and goes and gets any missing objects (files, code, images) for you.
- The HEAD is the tip of whatever branch you currently have checked out. If you've checked out a commit that isn't the HEAD, you have a detached HEAD
- A git merge weaves new objects (m