Knowing, git

“I know Git! Depending on what you mean by ‘know.’”

— @ThePracticalDev on Twitter

Git: yooooou oughta know

Knowing Is Half The Battle

In case you were wondering.

Git Usability

The cycle repeats. Repeatedly.
  1. You have no advance warning
  2. Even after the fact, you get no indication anything is wrong
  3. You find out you did something wrong way after you did the wrong thing
  4. Problems are cryptic in nature and in messaging
  5. A small mistake can affect dozens of other people
  6. Mistakes arehard to recover from
  7. It’s hard to tell when the recovery is successful
  8. The whole time, you’re worrying that the system just ATE hours and hours of your productive time

Don’t Do That, Then

  1. The team is relying on a master branch that blindly accepts pushes, rather than one that has a gatekeeper (e.g., pull requests) for sharing changes.
  2. Probably because the team thinks that “release engineer” or “build master” are dirty words, but if they have this sort of conflict, they probably need one.
  3. No pre-checks/tests to prevent pushing broken code — i.e., no checks for code content.
  4. No pre-checks to prevent pushing un-squashed commits (if that’s what Tom’s house has decided on) — i.e., no checks for code metacontent.
  5. No indication ahead of time that Tom was about to do something wrong
  6. No indication after the fact that anything was wrong
  7. No help on how to fix it
  8. No coordination on how and who fixes it

“Some kind of help is the kind of help we all can do without”

Noah Iliinsky has a great talk about abstracting requirements. It’s not about where the plumbing is; it’s about the user’s mental model, workflow, and goals.


  1. I get the latest version, possibly merging any of my existing changes.
  2. I make and save changes locally.
  3. Periodically, I share those changes.

The light at the end of the tunnel




Obligate infovore. All posts made with 100% recycled electrons, sustainably crafted by artisanal artisans. He/him/his.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

What I Learned At MicroConf 2018

Over the past 48 hours I have proposed this idea to the CEOs

A functional approach to dependency injection in Java

CandyJar — developer’s profile under the microscope

Open Source PIM vs Proprietary PIM

Wondering how to make the right choice between Open Source PIM vs. Proprietary PIM? Explore here the pros and cons of each model:

100 Days of Code — More than a Coding Challenge

PowerShell — Define shortcut/alias for common Kubernetes commands

Code/Art’s CodeYourself Competition is Changing the Face of Tech

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alex Feinman

Alex Feinman

Obligate infovore. All posts made with 100% recycled electrons, sustainably crafted by artisanal artisans. He/him/his.

More from Medium


Every Type of Integer Explained

Observer Pattern

Industrial training