Add daily email for 2025-02-18
Feature branches cause merge conflicts
This commit is contained in:
parent
b022c0aef1
commit
b5f242bf05
41
source/_daily_emails/2025-02-18.md
Normal file
41
source/_daily_emails/2025-02-18.md
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
---
|
||||||
|
title: Feature branches cause merge conflicts
|
||||||
|
date: 2025-02-18
|
||||||
|
permalink: daily/2025/02/18/conflicts
|
||||||
|
tags:
|
||||||
|
- software-development
|
||||||
|
- git
|
||||||
|
cta: ~
|
||||||
|
snippet: |
|
||||||
|
PSA: feature branches cause merge conflicts.
|
||||||
|
---
|
||||||
|
|
||||||
|
A common approach I see on software projects is where Developers create separate Git branches for each task they work on.
|
||||||
|
|
||||||
|
This commonly matches issues or ticket on a sprint board or issue tracker.
|
||||||
|
|
||||||
|
Each ticket is worked on independently and merged into a long-lived mainline branch once complete.
|
||||||
|
|
||||||
|
This type of approach is commonly called Git Flow or GitHub Flow.
|
||||||
|
|
||||||
|
It's something [I've given presentations][0] on in the past.
|
||||||
|
|
||||||
|
A common downfall is that different branches can conflict with each other - either due to a merge conflict where the same lines are changed in different branches, or incompatible code is written that works separately but not when merged together.
|
||||||
|
|
||||||
|
I used to work this way, even when working on projects as the only Developer.
|
||||||
|
|
||||||
|
One time, I was demoing two features to a client and needed to switch branches and doing so broke what it was trying to show.
|
||||||
|
|
||||||
|
These days, I avoid conflicts between branches by not branching.
|
||||||
|
|
||||||
|
Everyone works on a single branch and pulls and pushes changes regularly.
|
||||||
|
|
||||||
|
If you're [doing continuous integration][1], that should be once a day as an absolute minimum.
|
||||||
|
|
||||||
|
I do [test-driven development][2] and usually commit after each passing test.
|
||||||
|
|
||||||
|
If you work on a single branch and pull and push changes regularly, you're much less likely to get merge conflicts and Developers can focus on pushing code instead of fixing merge conflicts.
|
||||||
|
|
||||||
|
[0]: {{site.url}}/presentations/git-flow
|
||||||
|
[1]: {{site.url}}/daily/2025/02/17/ci-cd
|
||||||
|
[2]: {{site.url}}/atdc
|
Loading…
Reference in a new issue