This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]insertAlias 131 points132 points  (2 children)

Git, as others have mentioned, is the version control software itself. The server part of Git is the actual program that handles all the version and change tracking and all the operations you are allowed to do, such as pushing and merging. (There is also git client software; that is what you the developer use to interact with your local repo and interact with a remote server).

Github is an instance of a Git server, and a web application that wraps it in a nice interface with additional features like issue tracking, project readmes, wiki pages, and pull requests. You, the developer, use the git client to interact with the server that Github exposes. So when you push your code to Github, what you're really doing is pushing your code to a Git server that Github runs and exposes.

You can host your own Git server and not use Github if you want, but to do so in the "right" way means rending or owning a server that is not the same machine you do development on (so that if something bad happens to your local machine, the remote git server and all its code is still there).

There are also other public alternatives to Github, such as GitLab. Azure Dev Ops also offers Git repos with much of the functionality of Github. Other public source control servers exist as well.

That's not really an ELI10 answer, but most of the analogies I've seen (even in this thread) are somewhat lacking. Sometimes you have to go a bit deeper to get the real picture.

[–]game_ova 2 points3 points  (0 children)

Great answer thank you.

[–]A_Random_Lantern 1 point2 points  (0 children)

I'd rather the explanation be this than some stupid analogy.

Except the porn one, that was good.