SlideShare a Scribd company logo
Git
Branching –
the battle of
the ages
What’s better?
Extensive branching or
trunk-based development?
Jasmin Fluri
Gianni Ceresa
Disclaimer
This presentation is intended for
educational purposes only and
does not replace independent
professional judgment.
Statements of fact and opinions
expressed are those of the
presenters and are subject for bias.
Why do we need a
branching strategy?
Why you
absolutely
need a
defined git
strategy!
… not
having a git
strategy
means…
some people push their changes
directly to main…
… others create branches,
some create merge requests and
expect a review…
tags are sometimes created,
sometimes not…
… it’s a mess.
Without a defined git strategy…
… we need to define what happens …
a branching strategy covers the FULL lifecycle
… from when we
start implementing
a feature…
… until it is installed
in production!
2 different git strategies
Jasmin Fluri
Schaltstelle GmbH
@jasminfluri
Trunk-based development
Branch-based development
I first started with CVS back in ... can’t remember...
Gianni Ceresa
DATAlysis LLC
I’m supposed to play the old man here...
@G_Ceresa
I’m supposed to play the young gun here...
Born in the Git century – never used SVN or CVS
The Science of
Database
CI/CD
12:00 – 12:45
Ashstead 1 & 2
4 Steps in a Project Lifecycle
Start project
1
Review code
2
Build an
integration
pipeline
3
Ship feature
4
4 Steps in a Project Lifecycle
Start project
1
Review code
2
Build an
integration
pipeline
3
Ship feature
4
Starting a project …
Trunk based development is easy!
Trunk based does not mean you have no
branches!
Trunk-based
development combines
both
speed (bringing changes
into production fast)
and safety (automated
testing in the pipeline).
Trunk based development and infrastructure
code!
Source: https://github.com/michaellihs/presentations/blob/main/2021-10-21-infra-pipelines-baselone/presentation.pdf
Git Branching – the battle of the ages
Branch based development is ….
Also easy!
Until Jasmin finds a
fun picture of it...
Branch based development is ….
GitFlow
Everything can be a branch
Everything “needs” a branch
Once you start using branches,
no reason to stop!
And then you merge, merge and
merge branches...
Git Branching – the battle of the ages
COMMIT
GitFlow …
Jasmin
Gianni
Branch based development is... suggested by
Oracle
Branch based development: many ways
GitFlow has been the first, presented in 2010
• In development age this is a loooooong time ago!
Many more followed:
• GitHubFlow
• GitLabFlow
• OneFlow
• *whatever*-flow
Good luck with Trunk based!
Image by Anita S. from Pixabay Photo by Alexandre Debiève on Unsplash
Or relax with Branch based!
Alone
Singapore Airlines
Or relax with Branch based!
Or in a
team
Qatar Airways
4 Steps in a Project Lifecycle
Start project
1
Review code
2
Build an
integration
pipeline
3
Ship feature
4
Code Reviews in
Trunk-based
Development
• Either happens directly during
pair programming ….
• … or code reviews are very
small due to very small merge
requests!
• But we want to avoid merging…
Handovers in software development
Merging is bad for you!
• Merging is hard work
• Merging is a change to the codebase
• requires testing before and after the
merge
• No guarantee that integration works both
before and after the merge
• No branches == no merging
• Small batches == short test cycles
But we need a
way to introduce
changes step by
step!
Branching by Abstraction is your Friend!
Code Reviews in
Branch-based
Development
• Either happens directly during pair
programming ….
• … or code reviews happen once
when the development is over
before merging!
• And we aren’t afraid of merging…
Code Reviews in
Branch-based
• There isn’t one unique universal way for this
• Heavily depends on what you are versioning and your
processes
• Regression testing is your friend
• If you have a full set of regression tests covering your
code base, no regression = no issues and you can safely
merge
• If you aren’t happy with the quality of the code, no issues: the
branch is independent, nothing will be impacted by keeping it
there and work on it again
• Somebody else can easily take over a feature and keep
working on the branch
Merging can be your friend!
• Again ... It all depends on what you are
versioning and your processes
• Not everybody is versioning
just “some code”
• The better your tests,
the more you can “blindly” merge
• Of course it requires testing before
and after, but is this a bad thing?
• If you have full coverage with your
tests, tests are successful, there is
little reason to believe something will
break in an unexpected way
Branching for
real is better
than
“virtually”
• Why branching by abstraction
instead of a real branch?
• No need of any “_v2” or other
weird name when replacing something
• Who do not love a Big Bang release?
• Having a business sign off on a branch
is easier than on ... nothing
4 Steps in a Project Lifecycle
Start project
1
Review code
2
Build an
integration
pipeline
3
Ship feature
4
continuous
integration
best
practices
• Don’t commit broken code
• Don’t commit untested code
• If the build is broken, fix it before you
continue developing
• Don’t go home if the build is broken
• Commit frequently (at least once a day)
• Every commit must trigger the integration
• Keep the build fast (to get fast feedback)
Building an integration pipeline trunk-based!
On Merge Request
On Commit Main
Linting
Regression
Testing
Regression
Testing
Deploy CI
Linting
But … if you have a high test
coverage, it means your
code quality is good, right?
… only because you have a high test coverage,
it doesn’t mean your tests are any good….
Building an integration pipeline branch-based!
On Merge Request
Regression
testing
Linting
On Commit Main
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
On Commit …
Regression
testing
Deploy CI
Linting
Building an
integration
pipeline
branch-
based!
A bit more seriously...
• Having various kinds of branches requires
different/multiple integration pipelines
• A solid naming convention allows to make it
extremely simple
• A pipeline can be linked to a branch by a
suffix (like “feature-”, “release-” etc.)
• Integration pipelines can be custom tailored
for some special needs applying only to a
given branch
• Warning: More customization == more
work to implement it and maintain it
Building an integration pipeline branch-based!
An example of a GitLab CI/CD pipeline definition
• A condition link a job only with branches matching a name condition
4 Steps in a Project Lifecycle
Start project
1
Review code
2
Build an
integration
pipeline
3
Ship feature
4
Shipping features into prod trunk-based!
On Commit Main
Linting Testing
Deploy
Test
Deploy
Int
Deploy
Prod
Release
Deploy
CI
• The integration pipeline is extended with deployment steps
• Those steps can be triggered manually (so not every commit is
automatically pushed into prod).
Shipping features into prod branch-based!
On Commit
«Release candidate»
branch
Linting Testing
Deploy
Test
Deploy
Int
Deploy
Prod
Release
Deploy
CI
• Just what she said …
• But applied to a branch with the release candidate, every time there
is one
• Doing all the required changes in that branch, and some more
cooking
• Merge back into Main the changes, if any
Git Branching – the battle of the ages
Choose the git strategy that fits your project
best!  You might need to adjust one.
You can stay out of trouble if
you plan your tasks well!
• No overlapping tasks with other team
members
• Clear architecture that allows to do work
in parallel
• Clear interfaces that separate components
There are many good git branching strategies
available!  Know them!
Use Git and its
features how
they are
supposed to be
used! As a
versioning tool!
What questions do
you have?
Thank you for your time!
@jasminfluri
@G_Ceresa
The Science of
Database
CI/CD
12:00 – 12:45
Ashstead 1 & 2
References / Sources
• https://trunkbaseddevelopment.com/
• https://nvie.com/posts/a-successful-git-branching-model/

More Related Content

PDF
Introduction to CICD
PPTX
Introduction To Streaming Data and Stream Processing with Apache Kafka
PPTX
Fundamentals of DevOps and CI/CD
PDF
Starting with Git & GitHub
PPTX
CI/CD Best Practices for Your DevOps Journey
PPTX
GitHub Basics - Derek Bable
PDF
Git and github 101
PPTX
Introduction to CICD
Introduction To Streaming Data and Stream Processing with Apache Kafka
Fundamentals of DevOps and CI/CD
Starting with Git & GitHub
CI/CD Best Practices for Your DevOps Journey
GitHub Basics - Derek Bable
Git and github 101

What's hot (20)

PPTX
Git branching strategies
PDF
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
PDF
Git and git flow
PDF
Gitops Hands On
PDF
Introduction to GitHub Actions
PDF
CI:CD in Lightspeed with kubernetes and argo cd
PDF
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
PPTX
Gitlab CI/CD
PDF
Slide DevSecOps Microservices
PPTX
Azure DevOps CI/CD For Beginners
PDF
Git Version Control System
PPTX
Git One Day Training Notes
PPTX
Git and GitHub
PDF
GitOps and ArgoCD
PPTX
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
PPTX
CI/CD
PDF
Trunk-Based Development
PDF
Git Series. Episode 3. Git Flow and Github-Flow
PDF
DevSecOps What Why and How
Git branching strategies
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Git and git flow
Gitops Hands On
Introduction to GitHub Actions
CI:CD in Lightspeed with kubernetes and argo cd
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
Gitlab CI/CD
Slide DevSecOps Microservices
Azure DevOps CI/CD For Beginners
Git Version Control System
Git One Day Training Notes
Git and GitHub
GitOps and ArgoCD
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
CI/CD
Trunk-Based Development
Git Series. Episode 3. Git Flow and Github-Flow
DevSecOps What Why and How
Ad

Similar to Git Branching – the battle of the ages (20)

PDF
A Ci Experience
PPTX
Trunk Based Development in the Enterprise - Its Relevance and Economics
PPTX
Continuous Integration
PPTX
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
PDF
A Business Case for Git - Tim Pettersen
PPTX
Que nos espera a los ALM Dudes para el 2013?
PPTX
Short Introduction of software engineering for bioinformatics
PDF
Make Your Team Flow
PPTX
#spsclt18 vincent biret #spfx #devops
PPT
Enter the Team City
PDF
Webinar - Continuous Integration with GitLab
PDF
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
PDF
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
PDF
Introduction to Continuous Integration
PPTX
AgileLINC Continous Slides by Daniel Harp
PDF
How HipChat Ships and Recovers Fast with DevOps Practices
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
PDF
Git & Code review
PPTX
Continuous integration
KEY
Make It Cooler: Using Decentralized Version Control
A Ci Experience
Trunk Based Development in the Enterprise - Its Relevance and Economics
Continuous Integration
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
A Business Case for Git - Tim Pettersen
Que nos espera a los ALM Dudes para el 2013?
Short Introduction of software engineering for bioinformatics
Make Your Team Flow
#spsclt18 vincent biret #spfx #devops
Enter the Team City
Webinar - Continuous Integration with GitLab
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Introduction to Continuous Integration
AgileLINC Continous Slides by Daniel Harp
How HipChat Ships and Recovers Fast with DevOps Practices
Continuous Integration, Build Pipelines and Continuous Deployment
Git & Code review
Continuous integration
Make It Cooler: Using Decentralized Version Control
Ad

More from Jasmin Fluri (12)

PDF
Relational Database CI/CD
PPTX
The Science of database CICD - UKOUG Breakthrough
PDF
Testing your data mart - how to start | DOAG 2021
PDF
Myth Busting - NoSQL vs SQL Data Stores - Guild42
PDF
Myth Busting - NoSQL vs SQL Data Stores - Video Edition
PDF
Myth Busting - NoSQL vs SQL Data Stores
PDF
AskTom Office Hours about Database Migrations
PDF
Prediction of Skierdays with Oracle Data Mining - Analytics and Data Techcast...
PDF
Prediction of Skierdays With Oracle Data Mining - OGB EMEA Edition
PDF
Prediction of skier days with Oracle Data Mining
PDF
Learnings about Automated deployments of Database Applications
PDF
Automated delivery in the data warehouse SOUG Day Romandie - 21 May 2019
Relational Database CI/CD
The Science of database CICD - UKOUG Breakthrough
Testing your data mart - how to start | DOAG 2021
Myth Busting - NoSQL vs SQL Data Stores - Guild42
Myth Busting - NoSQL vs SQL Data Stores - Video Edition
Myth Busting - NoSQL vs SQL Data Stores
AskTom Office Hours about Database Migrations
Prediction of Skierdays with Oracle Data Mining - Analytics and Data Techcast...
Prediction of Skierdays With Oracle Data Mining - OGB EMEA Edition
Prediction of skier days with Oracle Data Mining
Learnings about Automated deployments of Database Applications
Automated delivery in the data warehouse SOUG Day Romandie - 21 May 2019

Recently uploaded (20)

PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
MYSQL Presentation for SQL database connectivity
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Cloud computing and distributed systems.
PDF
KodekX | Application Modernization Development
PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Building Integrated photovoltaic BIPV_UPV.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Review of recent advances in non-invasive hemoglobin estimation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
The Rise and Fall of 3GPP – Time for a Sabbatical?
MYSQL Presentation for SQL database connectivity
CIFDAQ's Market Insight: SEC Turns Pro Crypto
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Understanding_Digital_Forensics_Presentation.pptx
A Presentation on Artificial Intelligence
Mobile App Security Testing_ A Comprehensive Guide.pdf
Cloud computing and distributed systems.
KodekX | Application Modernization Development
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation

Git Branching – the battle of the ages

  • 1. Git Branching – the battle of the ages What’s better? Extensive branching or trunk-based development? Jasmin Fluri Gianni Ceresa
  • 2. Disclaimer This presentation is intended for educational purposes only and does not replace independent professional judgment. Statements of fact and opinions expressed are those of the presenters and are subject for bias.
  • 3. Why do we need a branching strategy?
  • 5. … not having a git strategy means… some people push their changes directly to main… … others create branches, some create merge requests and expect a review… tags are sometimes created, sometimes not… … it’s a mess.
  • 6. Without a defined git strategy…
  • 7. … we need to define what happens … a branching strategy covers the FULL lifecycle … from when we start implementing a feature… … until it is installed in production!
  • 8. 2 different git strategies Jasmin Fluri Schaltstelle GmbH @jasminfluri Trunk-based development Branch-based development I first started with CVS back in ... can’t remember... Gianni Ceresa DATAlysis LLC I’m supposed to play the old man here... @G_Ceresa I’m supposed to play the young gun here... Born in the Git century – never used SVN or CVS
  • 9. The Science of Database CI/CD 12:00 – 12:45 Ashstead 1 & 2
  • 10. 4 Steps in a Project Lifecycle Start project 1 Review code 2 Build an integration pipeline 3 Ship feature 4
  • 11. 4 Steps in a Project Lifecycle Start project 1 Review code 2 Build an integration pipeline 3 Ship feature 4
  • 12. Starting a project … Trunk based development is easy!
  • 13. Trunk based does not mean you have no branches!
  • 14. Trunk-based development combines both speed (bringing changes into production fast) and safety (automated testing in the pipeline).
  • 15. Trunk based development and infrastructure code! Source: https://github.com/michaellihs/presentations/blob/main/2021-10-21-infra-pipelines-baselone/presentation.pdf
  • 17. Branch based development is …. Also easy! Until Jasmin finds a fun picture of it...
  • 19. GitFlow Everything can be a branch Everything “needs” a branch Once you start using branches, no reason to stop! And then you merge, merge and merge branches...
  • 23. Branch based development is... suggested by Oracle
  • 24. Branch based development: many ways GitFlow has been the first, presented in 2010 • In development age this is a loooooong time ago! Many more followed: • GitHubFlow • GitLabFlow • OneFlow • *whatever*-flow
  • 25. Good luck with Trunk based! Image by Anita S. from Pixabay Photo by Alexandre Debiève on Unsplash
  • 26. Or relax with Branch based! Alone Singapore Airlines
  • 27. Or relax with Branch based! Or in a team Qatar Airways
  • 28. 4 Steps in a Project Lifecycle Start project 1 Review code 2 Build an integration pipeline 3 Ship feature 4
  • 29. Code Reviews in Trunk-based Development • Either happens directly during pair programming …. • … or code reviews are very small due to very small merge requests! • But we want to avoid merging…
  • 30. Handovers in software development
  • 31. Merging is bad for you! • Merging is hard work • Merging is a change to the codebase • requires testing before and after the merge • No guarantee that integration works both before and after the merge • No branches == no merging • Small batches == short test cycles
  • 32. But we need a way to introduce changes step by step!
  • 33. Branching by Abstraction is your Friend!
  • 34. Code Reviews in Branch-based Development • Either happens directly during pair programming …. • … or code reviews happen once when the development is over before merging! • And we aren’t afraid of merging…
  • 35. Code Reviews in Branch-based • There isn’t one unique universal way for this • Heavily depends on what you are versioning and your processes • Regression testing is your friend • If you have a full set of regression tests covering your code base, no regression = no issues and you can safely merge • If you aren’t happy with the quality of the code, no issues: the branch is independent, nothing will be impacted by keeping it there and work on it again • Somebody else can easily take over a feature and keep working on the branch
  • 36. Merging can be your friend! • Again ... It all depends on what you are versioning and your processes • Not everybody is versioning just “some code” • The better your tests, the more you can “blindly” merge • Of course it requires testing before and after, but is this a bad thing? • If you have full coverage with your tests, tests are successful, there is little reason to believe something will break in an unexpected way
  • 37. Branching for real is better than “virtually” • Why branching by abstraction instead of a real branch? • No need of any “_v2” or other weird name when replacing something • Who do not love a Big Bang release? • Having a business sign off on a branch is easier than on ... nothing
  • 38. 4 Steps in a Project Lifecycle Start project 1 Review code 2 Build an integration pipeline 3 Ship feature 4
  • 39. continuous integration best practices • Don’t commit broken code • Don’t commit untested code • If the build is broken, fix it before you continue developing • Don’t go home if the build is broken • Commit frequently (at least once a day) • Every commit must trigger the integration • Keep the build fast (to get fast feedback)
  • 40. Building an integration pipeline trunk-based! On Merge Request On Commit Main Linting Regression Testing Regression Testing Deploy CI Linting
  • 41. But … if you have a high test coverage, it means your code quality is good, right?
  • 42. … only because you have a high test coverage, it doesn’t mean your tests are any good….
  • 43. Building an integration pipeline branch-based! On Merge Request Regression testing Linting On Commit Main Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting On Commit … Regression testing Deploy CI Linting
  • 44. Building an integration pipeline branch- based! A bit more seriously... • Having various kinds of branches requires different/multiple integration pipelines • A solid naming convention allows to make it extremely simple • A pipeline can be linked to a branch by a suffix (like “feature-”, “release-” etc.) • Integration pipelines can be custom tailored for some special needs applying only to a given branch • Warning: More customization == more work to implement it and maintain it
  • 45. Building an integration pipeline branch-based! An example of a GitLab CI/CD pipeline definition • A condition link a job only with branches matching a name condition
  • 46. 4 Steps in a Project Lifecycle Start project 1 Review code 2 Build an integration pipeline 3 Ship feature 4
  • 47. Shipping features into prod trunk-based! On Commit Main Linting Testing Deploy Test Deploy Int Deploy Prod Release Deploy CI • The integration pipeline is extended with deployment steps • Those steps can be triggered manually (so not every commit is automatically pushed into prod).
  • 48. Shipping features into prod branch-based! On Commit «Release candidate» branch Linting Testing Deploy Test Deploy Int Deploy Prod Release Deploy CI • Just what she said … • But applied to a branch with the release candidate, every time there is one • Doing all the required changes in that branch, and some more cooking • Merge back into Main the changes, if any
  • 50. Choose the git strategy that fits your project best!  You might need to adjust one.
  • 51. You can stay out of trouble if you plan your tasks well! • No overlapping tasks with other team members • Clear architecture that allows to do work in parallel • Clear interfaces that separate components
  • 52. There are many good git branching strategies available!  Know them!
  • 53. Use Git and its features how they are supposed to be used! As a versioning tool!
  • 54. What questions do you have? Thank you for your time! @jasminfluri @G_Ceresa
  • 55. The Science of Database CI/CD 12:00 – 12:45 Ashstead 1 & 2
  • 56. References / Sources • https://trunkbaseddevelopment.com/ • https://nvie.com/posts/a-successful-git-branching-model/

Editor's Notes

  • #7: If you don’t have a defined git strategy, you won’t be fine… .. We all agree on this – there are multiple things that can go wrong and will go wrong.
  • #9: [GC] It looks like many people took the original Git-Flow and just did minimal changes but felt like naming the result as a new strategy.
  • #11: .. Let’s have a look how those two git strategies perform on these five steps in a project lifecycle
  • #12: .. Let’s have a look how those two git strategies perform on these five steps in a project lifecycle
  • #13: You either commit directly to the trunk (done in pair programming) or you work in very short lived feature branches, that get merged very quickly. We don’t need to merge a lot and because we all work on the same branch, we commit very small code changes that again reduce the risk of introducing changes. Active time of a developer is much higher… less waiting times – almost no hand-overs
  • #20: [GC] Everybody has its own private place where to work, nothing will be mistakenly make it into a shared branch till you really wants it. No half-releases, it’s more a Big Bang kind of release.
  • #26: [GC] Why to all share a wardrobe when you could have one each?
  • #27: [GC] Why to all share a wardrobe when you could have one each?
  • #28: [GC] Why to all share a wardrobe when you could have one each?
  • #29: .. Let’s have a look how those two git strategies perform on these five steps in a project lifecycle
  • #39: .. Let’s have a look how those two git strategies perform on these five steps in a project lifecycle
  • #41: In trunk based development, there are only two type of branches – you don’t have different rules for different branches.
  • #44: Every branch in gitflow workflow has its own little rules – you have a nightmare list of processes – building an automated pipeline for so many scenarios is quite a pain
  • #45: Every branch in gitflow workflow has its own little rules – you have a nightmare list of processes – building an automated pipeline for so many scenarios is quite a pain
  • #46: Every branch in gitflow workflow has its own little rules – you have a nightmare list of processes – building an automated pipeline for so many scenarios is quite a pain
  • #47: .. Let’s have a look how those two git strategies perform on these five steps in a project lifecycle