DEV Community

Zach
Zach

Posted on • Edited on

Git Workflow

In this post:

My Git Workflow

I've started using git as a tool, and not just something that I have to do. In this way it's turned from a liability into an asset. There's nothing crazy going on - although there is just maaaybe a little bit of magic happening.

The Workflow

Here are fragments of how I approach git and incorporate it into my work:

  • Am I starting a new feature?
    • Ok, checkout a new branch.
  • Have I produced any work that is:
    1. Complete?
    2. Incomplete but is substantial/meaningful and hasn't broken anything else?
      • Commit that branch with an appropriate message.
  • Can I merge complete work on a side branch into my main branch?

    • Merge into main.
  • Have I gone too far down the wrong path?

    • Checkout an earlier commit.
    • I'm now in the DETACHED HEAD state.
    • Have I completed work on the detached head that I'd like to preserve?
    • Merge it! (So far i've only done that by creating a new branch out of it and then merging that new branch. But there are ways of merging it directly.)
  • Am I curious about some feature of an earlier commit?

    • Look it up and investigate based on a clearly written commit message!

The Magic

I might have noticed that writing with committing in mind has changed how I approach code. I have always enjoyed writing code that is runnable/testable as possible. That means moving incrementally, starting with the fundamental kernel of what I'm trying to achieve and then building with subsequent rounds of code here. Git reinforces that.

I want to commit often. I also want to commit working code. A synergy exists between these two forces.

I've long been comfortable operating with a starting vision, and writing code, switching between files as I put those varied pieces together, and often layering additional, non-elemental (for that stage), functionality on top as I go. Working with git has given me a greater discipline for keeping stages (those pieces of work between commits) simpler, and functional.

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs