a repository can be stored on a person's computer "locally" (not on the internet), but it can also be stored "remotely" (on a network or the internet). one of the most popular websites for hosting repositories is github, however others such as gitlab exist. if a person wants to use a public repository on these kinds of websites, they can "clone" the repository onto their computer. this creates a copy of the repository, and all of the files (usually computer code) related to it. a person can then make changes to the repository, and they can "commit" those changes to their local repository (which means that their changes are recorded in the repository's history). if they wish to update the remote repository (the one stored online) they can "push" their changes to it. this updates the repository on the website or network location.