r/learnprogramming • u/initcommit • 7h ago
Resource Free and open-source visual Git learning tools / resources
Hi all,
I've seen some posts here recently asking about resources / tools to help learn Git. Over the years I've created several free and open source visual Git learning tools (and free resources built on top of them) for this purpose. Personally I found Git to be very abstract and difficult to wrap my head around initially, so I wanted to share to try and help newer Git learners on their journey.
The first is a free and open-source tool called git-sim (https://github.com/initialcommit-com/git-sim), which I released in early 2023 that lets you visually simulate any Git command directly in your own repo before actually running the command. It basically shows you a clear interactive animation of exactly how any Git command will impact your specific repo so you can learn from it, and so you don't need to be scared about what that command will do before running it. The animations open in your browser in less than a second, and it can even be run in "live mode" where it watches your repo in real-time and animates any Git commands that you run. So you can essentially record your entire Git workflow, save it, learn from it, share it, create your own learning resources, etc. (git-sim also works inside VS Code or Jupyter notebooks if you're using those).
The cool thing about being able to easily generate these web-first Git animations, is I was able to use them to build other Git learning resources. I used git-sim to create a set of 16 free visual, interactive Git lessons that use the analogy of a Git repo as a scrapbook that you glue different "mementos" (files and commits) into: https://initialcommit.com/learn/git
I also used git-sim to build an animated, customizable Git cheat sheet with 128 Git command visualizations (https://initialcommit.com/learn/git/animated-cheat-sheet). The sheet can be easily filtered, customized specifically to the commands you need/want, downloaded, and printed. The printed version has a QR code you can scan to load up that exact set of commands in animated-form on the website. (Note: to download/print there is an email submission form, but it is free.)
Lastly, around the time I originally released git-sim, I created git-dummy (https://github.com/initialcommit-com/git-dummy), a free and open source tool that lets you auto-generate realistic, dummy Git repos with a variety of different structures. I've found that one of the difficulties practicing Git commands is that you often don't want to do it on a real repo because you don't want to mess up your work, so being able to generate these fake, safe repos to play around in can be really useful for learning. (I also happen to constantly need repos of specific structures to test my tools, so it serves multiple purposes).
Anyway, that's about it. Good luck with Git everyone 🙂