Version control is essentially the ability to track changes to code in your software project (or other document). Version control systems let you not only see what changes were made when, but access older versions of the document as well.
If you've ever used Google Docs, Wikipedia's editing feature, or even the "undo" button, you've used some form of version control.
Git is a specific version control system first developed by Linus Torvald for the Linux operating system. It was built for speed, simplicity, and the ability to support multiple parallel versions of projects (called branches).
Git is usually run from the command line, but a number of graphical user interfaces also exist.
GitHub is a website for hosting Git projects.
GitHub adds useful web-based tools to Git and makes it much easier to collaborate and share your projects with others. There is also a downloadable version of GitHub that you can install on Windows and macOS.
A branch is a version of all the code in a project. You can use branches to test code without affecting the main project.
A fork is a complete copy of the repository for a project. They differ from branches in that a fork is essentially a new project, and not a version of the same project used for testing.
A commit is a release of the latest changes to a project.
An issue is a bug or problem you or someone else has noticed in your project.
A merge is the act of adding code from one branch of a project into its main branch.
A pull request is a request to merge code you have written in a branch to the main branch of a project.
A repository is the term used to describe all the code, readme files, and licensing information for a project.