I don’t know if I explain it that well, but I’m trying:
A commit is literally a contribution.
You have a local repository and a remote repository. The remote repository is on a host such as Github, and when you clone a repository (sort of downloading to your computer), your computer will have the local repository. It contains all the files of the project.
When you change code, you are no longer equal to your local repository. To rectify this, you can add and commit your modified files (so actually contribute to your local repository). This will bring your local repository up to date again.
At this point, the remote repository is behind your local repository. If you then have the correct permissions, you can push to the remote to make it up-to-date again.
You can use commits as a kind of history, and you can also roll it back to a specific commit if you still did something wrong.
Normally you never push to the master branch, but to a separate branch, when such a branch has been fully tested, you can make a pull request to merge it with the master branch. (then “pull” the branches together).
Here a short video with some explanation:
https://www.youtube.com/watch?v=hwP7WQkmECE
–