Top all-time · #213
Steve Losh
Personal blog · stevelosh.com/blogprogrammingdesign
Steve Losh's personal blog at stevelosh.com covers programming and design. Since 2009, 220 different Hacker News readers have linked it 379 times, most often “Git koans”. It is still writing: the last post was on 2026-09-01, and you can follow it by feed.
Sometimes recommended · 13 of 40 sampled comments recommend it?
Why HN links it
HN readers mostly cite Steve Losh's Git Koans as a satire of git's confusing CLI, and his Mercurial branching guides as reading. Valued for a laugh, and as the best survey of Git's quirks.
- Recommended for · 13 comments
- Called the best survey of Git's quirks, good for a laugh and still relevant; one says Lisp writing isn't hagiography.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Git koans26 people · 27 mentions · first linked 2013-04-08
- Git Koans (2013)20 people · 23 mentions · first linked 2020-05-25
- A Road to Common Lisp (2018)16 people · 18 mentions · first linked 2020-03-01
- A Modern Space Cadet14 people · 15 mentions · first linked 2012-10-03
- The Homely Mutt11 people · 12 mentions · first linked 2012-10-01
- Coming Home to Vim9 people · 14 mentions · first linked 2010-09-20
- A Guide to Branching in Mercurial8 people · 14 mentions · first linked 2010-02-10
- The Caves of Clojure8 people · 9 mentions · first linked 2012-07-07
- List Out of Lambda8 people · 8 mentions · first linked 2013-03-30
- Volatile Software (2012)7 people · 22 mentions · first linked 2012-04-23
What Hacker News says?
The git CLI is horribly inconsistent. http://stevelosh.com/blog/2013/04/git-koans/
Comment linking /blog/2013/04/git-koans/
on “Oh shit, git: Getting myself out of bad situations”Submitted A Road to Common Lisp as a story · 343 points
HN discussionhttp://stevelosh.com/blog/2013/04/git-koans/
Comment linking /blog/2013/04/git-koans/
on “Oh shit, git: Getting myself out of bad situations”Submitted Git koans as a story · 305 points
HN discussionThe CLI for Git is one of the most confusing CLIs I've ever seen. I can describe all the warts here, but other did that better than me: http://stevelosh.com/blog/2013/04/git-koans/ Besides the inconsistencies, there are many gotchas which keep tripping developers. For instance, git pull always tries to merge in the remote branch, but you almost never want that. You can do: git pull --ff-only, but most developers I k…
Comment linking /blog/2013/04/git-koans/
on “CLI: Improved”Submitted Going Paper-Free for $220 as a story · 302 points
HN discussion- https://www.hillelwayne.com/post/ - http://hintjens.com/ - https://idlewords.com/ - https://stevelosh.com/blog/ - https://magnus.therning.org/archive.html
Comment linking /blog/
on “Ask HN: Favorite Blogs by Individuals?”Submitted Coming Home to Vim as a story · 285 points
HN discussionMore like this: Rootless Root — The Unix Koans of Master Foo : http://www.catb.org/~esr/writings/unix-koans/ The Tao Of Backup : http://www.taobackup.com/ Git Koans https://stevelosh.com/blog/2013/04/git-koans/
Comment linking /blog/2013/04/git-koans/
on “Ask HN: Anyone know any funny programming jokes?”Submitted Writing Vim Plugins as a story · 253 points
HN discussionJust read this: http://stevelosh.com/blog/2013/04/git-koans/ And then think about that Mercurial simply makes handling branches/updates/resets in a very clean and consistent way.
Comment linking /blog/2013/04/git-koans/
on “Git from the inside out”Submitted A Road to Common Lisp (2018) as a story · 239 points
HN discussionMercurial uses a DAG just like git. It has facilities for embedding a branch name in each commit, or for not doing that and having anonymous branches. It also has a feature similar to git's "branches" Two articles that might help if you really want to dig into it: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-me... https://bryan-murdock.blogspot.com/2013/06/git-branches-are-...
Comment linking /blog/2009/08/a-guide-to-branching-in-mercurial/
on “Write yourself a Git (2018)”Submitted The Homely Mutt as a story · 223 points
HN discussionYa, the git UI is not great. It has improved a ton over the years but still not great. Have you ever seen Git Koans? It's good for a laugh. https://stevelosh.com/blog/2013/04/git-koans/
Comment linking /blog/2013/04/git-koans/
on “Magit, the magical Git interface (2017)”Submitted Teach, Don't Tell (2013) as a story · 212 points
HN discussionThe underlying model of git is not too hard to understand, and is actually pretty elegant. There are a number of good explanations online, including the one you linked. The git tool itself, though, often operates at a much higher level of abstraction. I think that's more where the reputation of being hard to learn comes from. For instance, you'd probably need to write a paragraph or two to explain what "git checkout…
Comment linking /blog/2013/04/git-koans/
on “Magit, the magical Git interface (2017)”Submitted Coming Home to Vim as a story · 204 points
HN discussionI'm slightly embarassed to admit that I remapped them after reading this: http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#cont...
Comment linking /blog/2012/10/a-modern-space-cadet/
on “Great HN parody”Submitted Teach, Don't Tell as a story · 203 points
HN discussion> Also, follow the development of Django and comment on the intentional breaks if you think they’re not worth changing. I really don't want to be sucked into Django's drama: https://us.pycon.org/2015/schedule/presentation/381/ I've encountered very little sympathy from Django developers. Everyone seems to have just accepted that it breaks often and it's totally my fault for not keeping up with the breaking changes.…
Comment linking /blog/2012/04/volatile-software/
on “Django 2.0 released”Submitted Git Koans (2013) as a story · 197 points
HN discussionI'm surprised I had to scroll this far down to find this. I've been using my own version of 'hyper key'[1] for years now. I map capslock to ctrl (in OSX), then ctrl-space to 'ctrl, command, option' in Karabiner, so that I have a 'namespace' of my own hotkeys, which I assign to apps in apptivate[2] to quick switch, and finally I make it so that if I tap caps without hitting another key, it actually hits escape. I use…
Comment linking /blog/2012/10/a-modern-space-cadet/
on “Ask HN: Programs that saved you 100 hours?”Submitted Git Koans (2013) as a story · 194 points
HN discussionhttps://stevelosh.com/blog/2013/04/git-koans/
Comment linking /blog/2013/04/git-koans/
on “Congratulations on creating the one billionth repository on GitHub”Submitted A Road to Common Lisp (2018) as a story · 182 points
HN discussionHere’s a good one: https://stevelosh.com/ And here’s mine: https://jezenthomas.com/
Comment linking /
on “Ask HN: What are good solo developer blogs that you enjoy reading?”Submitted Writing Small CLI Programs in Common Lisp as a story · 174 points
HN discussion> I understand that, but it means that debian inevitably distributes buggy software in a supposedly 'stable' distribution. Bugs are a matter of perspective. If alleged bugfixes actually make you modify your currently working setup, then I don't consider that much of an actual bugfix, just something that makes me do work for no real benefit: http://stevelosh.com/blog/2012/04/volatile-software/ I like Debian stable. T…
Comment linking /blog/2012/04/volatile-software/
on “Remote code execution, git, and OS X”Submitted CHIP-8 in Common Lisp as a story · 157 points
HN discussion