Skip to main content
The Kit Review
LatestCategoriesAboutNewsletter
The Kit Review

Writing on design, code, and the craft of shipping software.

Read

  • Latest
  • Categories
  • About
  • Newsletter
  • Search

Sections

  • Technology
  • Design
  • Engineering
  • AI & ML

Subscribe

Get new essays in your inbox.

© 2026 The Kit Review. All rights reserved.

RSS FeedSitemapAdmin Panel
engineering Edit

Advanced Git Workflows for Team Collaboration

Master trunk-based development, conventional commits, and automated releases. Plus: the rebase vs merge debate, settled once and for all.

MR
Marcus Rivera
July 2, 2026·7 min read
Advanced Git Workflows for Team Collaboration

The Problem with Long-Lived Branches

If your feature branches live for more than a few days, you're setting yourself up for merge conflicts, stale reviews, and integration headaches.

Trunk-Based Development

The solution is simple: everyone commits to main (or a single trunk branch) multiple times per day.

text
main ─── A ─── B ─── C ─── D ─── E
              │           │
              └─ fix ─────┘  (short-lived, < 1 day)

Conventional Commits

Structure your commit messages for automated changelogs:

text
feat: add user authentication with OAuth 2.0
fix: resolve race condition in checkout flow
docs: update API reference for v3 endpoints
perf: optimize image loading with lazy hydration

Tip

Use commitlint and husky to enforce conventional commits in your CI pipeline.

The Rebase vs Merge Verdict

Use rebase for feature branches, merge for integration:

bash
# On your feature branch, rebase onto main

# On main, merge the feature (creates a merge commit) git merge --no-ff feature/auth ```

This gives you clean, linear history on feature branches and clear merge points on main.

Automated Releases

Combine conventional commits with semantic-release:

yaml
# .github/workflows/release.yml
- uses: semantic-release/semantic-release
  with:
    branches: [main]

Every push to main automatically: 1. Determines the version bump (major/minor/patch) 2. Generates the changelog 3. Creates a GitHub release 4. Publishes to npm

Share
#open-source#deployment#nodejs
MR

Written by

Marcus Rivera

editor

Full-stack developer and open-source contributor. Writes about Node.js, databases, and system design. Core maintainer of several popular npm packages.

Comments (1)

MJ
Mike Johnson3 months ago

We switched to trunk-based development 6 months ago and it's been transformative. No more week-long merge conflicts!

Keep reading

Read Mastering TypeScript Generics: Real-World Patterns
Mastering TypeScript Generics: Real-World Patterns

engineering

Mastering TypeScript Generics: Real-World Patterns

Move beyond basic generics with practical patterns for type-safe APIs, component props, and utility types that you'll use every day.

MRMarcus Rivera·Jul 16, 2026
5,120
Read Optimizing React Performance: From 3s to 300ms
Optimizing React Performance: From 3s to 300ms

engineering

Optimizing React Performance: From 3s to 300ms

Real performance wins from a production React app — covering code splitting, memo strategies, virtualization, and the new React compiler.

SCSarah Chen·Jul 11, 2026
6,230
Read Docker for Frontend Developers: A Gentle Introduction
Docker for Frontend Developers: A Gentle Introduction

devops

Docker for Frontend Developers: A Gentle Introduction

You don't need to be a DevOps engineer to use Docker. Learn how containers can make your development workflow more reliable and portable.

JOJames Okonkwo·Jul 9, 2026
2,890
Previous

CSS Container Queries: The Layout Revolution

Next

Building AI-Powered Features with the Vercel AI SDK