I am Git. I track all of your code changes. I am GitHub, I use Git to display all of your code changes.
We want to make a list of steps for a computer to do. The computer does work that people could do but faster. This list of steps may need to change. When we change the steps we want to be able to see how our steps have changed over time. Git keeps a record of every change and only the changes not a copy of everything. It is distributed so you can keep a copy of the source on your own machine and work and then send your changes somewhere else where others might be working to integrate their changes to the code.
Say you are writing a short story and you want to do a really good job. You might write the story on one sheet of paper, and then get another sheet of paper and write another version, and then keep writing more versions on more sheets of paper. After a while, you'd end up with lots of sheets of paper that weren't the version you were currently writing. You might put those sheets in a folder so that you can go back and see old drafts of your story.
You give that folder to your mom to keep track of, because you know that you can always ask mom for one of the versions of your story if you need it. Plus, mom keeps photocopies so she can give versions of your story to your siblings. Mom also keeps similar folders for the stories that your siblings write.
Git is the folder, and your pieces of paper are code. Your mom is GitHub.
My mom keeps my "code" on the refridgerator so everyone can see :0. love this analogy
I ended up writing an article about writing responses to #explainlikeimfive, inspired by this discussion!
Here's the link: dev.to/dmerand/explain-it-like-im-...
My favorite explanation so far! Thanks so much!!
You are welcome! Glad it was helpful.
My team uses a code review checklist to prevent stupid mistakes from causing problems and wasting time, which has dramatically increased our effectiveness.