What is git

[reddit user]

git is a program that is used to track changes in code. It’s very useful and allows you to “go back in time” if something is broken and see what’s changed which might have caused it to break. It’s also very handy when several people work on the same code together, they can share their changes easily.

GitHub is a website, now owned by Microsoft, that you can use with git. There are other websites like it, e.g. GitLab. All of them allow you to put your changes on their servers to make it easier to share them with other people. They may also have other features like more advanced permissions so you can only share your code with specific people, or build platforms where you can automatically build your program after you’ve pushed new code to them.

[reddit user]

Just in case that is still a bit dense for you or your current computer knowledge a simpler version is:

Linus Torvalds, the man who Linux is named after (Linus + Unix = Linux) made a manager for managing the revisions of computer programming he was doing making the Linux Kernel. Every different thing he tried to do to solve for how to make something one way, or another or the third way was saved. if he had to go back and change from the third way back to the second or first as all saved unlike usual computer coding which wouldn’t save that.

Making fun of himself that he needed this helpful feature he called it “git” after the British Slang for someone being a dummy. Now some people prefer to think of it as “Go-back In Time” instead of thinking of the creator of the Linux Kernel as ‘dumb’.

Now Git was so useful, and like Linux, Open Source and Free, and the more it was developed by the community the more powerful, and to some people, seen as a required tool for doing programming projects.

What was shared versions of work stored locally, called versioning, would be stored in folders of single coders work, or multiple coders putting their proposed version(s) for a piece of code, or multiple people sharing and collaborating on the same code. The folders for these were called repositories. Later the finished/published pieces of code would be published to a folder which was also called a repository. When you install software on Linux or just using package managers in general, they largely use collections of published repositories either by pointing at all those final version repositories or by collecting copies of them on a central server called itself a repository, as in a repository of repositories.

Now this is where GitHub and its siblings/cousins come in. They can act as an online collection of not just the published version of the repositories, but a central place for people to collaborate with Git online, store the work away from the person’s local computer alone, preventing loss of data, and even act as a place users can come to learn about and install and get help with the published program/code.

In short you use Git to help you develop code and track all the versions of your work over time.
Git is so ubiquitous that the format it finishes off the code in can be used to distribute to code and update it later.

GitHub (and GitLab, SourceForge, etc.) are places where code project can be worked on and collaborated with that also distribute and help creators support users that is done with Git and Git related software.

Repositories is just a Git related Jargon for the folders that hold the different versions of a Git Project, but when you are talking Package Managers or Code Sites like GitHub, they are talking about the stored published versions of the code that people can download, install, and use.

To you the end user just think of repositories as “Folders of Code” be it programs or extensions or mods or even collections of settings and that it is just jargon.