The Shame-Based Approach to Learning Git

A few months ago I was working on a university project and, since I was about to integrate my work into the main branch, which is a tricky phase, I was assisted in the process by Marco, a member of my team. I shared my screen with my fellow and showed him the Git history of the branch I had been working on.

We hadn’t established clear conventions for commits, but he was pretty shocked by how I structured them: for example, I had some commits containing changes that were unrelated to each other - which is definitely not a best practice - or some others that just reverted previous commits - which needlessly made the history dirtier.

So Marco suggested that I split some commits, squash others, reorder the history, and so on. The thing was… I had no clue on how to perform most of these tasks. Since I was sharing my screen and I was expected to carry them out immediately, I did the only reasonable thing: I shamefully admitted my Git incompetence.

Marco reacted in a very kind way: he patiently babysitted me for about 4 hours, teaching me the Git commands and concepts I didn’t know.

At the end of his free lesson, I thanked him a lot and apologized for wasting his time. He said that he had been through a similar situation: about one year before, when working on a group project, he had accidentally lost a few days of work while performing some version control tasks, because of his poor Git skills. Like me, he felt really ashamed towards his team, and that feeling had driven him to study Git properly.

It seems a recurrent pattern, and actually it makes some sense. A long as we are used to developing by ourselves, we find just a few version control features useful, so these are the only features we use. When we start working in a team, we believe we have sufficient ability in version control, since we haven’t faced any problems with it in the past. However, the new environment requires more skills than we have, and this lack of ability inevitably shows up at a certain point. If it shows up when we are alone, we start realizing it, but we may end up not fixing it. On the other hand, if our inadequacy is exposed to others, we feel ashamed, hence we get the pressing urge to fix what causes our shame.

And that’s what drives us to learn Git. Or, at least, what drove Marco and me.

Hey, you have come to the end of this short post!

What do you think about it? Have you followed a shame-based learning method for Git? I’d love to hear from you: if you feel like it, just reach me out through email. As always, interesting discussions will be posted in this section.

Moreover, I want to remind you of subscribing to my newsletter or RSS feed, in case you don’t want to miss future posts.

Thanks for reading, see you!

No spam, unsubscribe at any time (or use RSS feed)