Branching Strategies Explained

preview_player
Показать описание
What are different branching strategies? Which Git branching strategy should you be using? Should it be trunk-based development, feature branches, GitHub Flow, forking strategy, release branching, Git Flow, environment branches, or something completely different?

#git #gitflow #githubflow #featurebranches #forking

▬▬▬▬▬▬ 🔗 Additional Info 🔗 ▬▬▬▬▬▬

▬▬▬▬▬▬ 🚀 Courses, books, and podcasts 🚀 ▬▬▬▬▬▬

▬▬▬▬▬▬ 👋 Contact me 👋 ▬▬▬▬▬▬

▬▬▬▬▬▬ Timecodes ⏱ ▬▬▬▬▬▬
00:00 Intro
01:19 Trunk-Based development
04:20 Feature branches or GitHub Flow
06:53 Forking strategy
08:22 Release branches
12:06 Git Flow
14:04 Environment branches
15:46 Which strategy should you use?
Рекомендации по теме
Комментарии
Автор

finally, someone summarizes these different branching strategies in an easy way to digest. thanks a lot.

ultiumlabs
Автор

My dumb ass stumbled across the wrong video. I literally have no idea what your talking about and found no clue in the comments. I was just trying to figure out how to create more branches on my cannabis plants. Hats off to u geniuses.

homegrownluv
Автор

It's a great video, very crisp and concise !! However, in a corporate development environment there can't be only 1 approach. Probably, it makes sense to use combination of Trunk + Fork + Feature Branch. Here is the reason :

Reason :
1) Trunk based - For frequent small feature changes to main branch.
2) Fork Strategy - To limit the developers access to main repository and allow merge into main repo only via PRs.
3) Feature Branch - To have development for major features which tends to break almost everything until they are entirely completed. e.g. TECH stack upgrade etc

I know there can be different approaches with Trunk based development, to disable/hide incomplete features (e.g. Dark launch, Branch Abstraction, feature toggles etc). but that requires very high level of maturity of team (which is not always possible with new developers joining once-twice year).

PrinceRambade_Official
Автор

Exceptional! you are a legend, and the way how you explained these strategies, I could not control but ROFL. We started off with GitFlow, and then adapted Release branching and now taking the path of Trunk based!

Zeelo
Автор

This was outstanding, I loved every word of it. I’ve worked on most of these methods and cannot agree more with your evaluation.

_indrid_cold_
Автор

Personal opinion: The testing needed for trunk based development isn't a lot of unit tests. What's needed, in my opinion, is to have a robot equivalent of a QA tester, meaning that the thing will be deployed in an environment just like production, and some component will drive the program like a human would. Teams I worked in didn't like this or even see it as a possibility because it sometimes requires thinking outside the box and being multi-disciplinary in order to implement.

DF-ssep
Автор

This is a great meta topic in our industry, thank you so much for taking the time to dd on this.

bobbyray
Автор

A git branching strategies video that talks about git branching strategies.
And on top of that it explains sums them very well.
This should be higher on youtube's list.

SaeThunder
Автор

Just to be fair to the Release Branches Strategy: Everything Victor said about it is true, but when it is applied in the Project or Product as a Service business models, when there is only one production environment.
However, when business model is Product based, where product is shipped to many customers and there are many production environments, then Release Branches Strategy is viable complementary branching strategy to cover customers that are using different versions of our product (for non-technical legal, regulatory, business... reasons). Actually it is must-have additional branching strategy, in addition to say trunk based development or feature branches that are used for the main stream of development on the current version of the product.

miletacekovic
Автор

Well done! You should do a talk with the guy from the channel "Continous Delivery", I just saw a video in which he is more for trunk-based development rather than branching. Would love to understand better in an in-depth talk between you two! Btw, the git flow part was really fun!

deap
Автор

I'm on the Environment Crap.
and have deployment team... when I mentioned "branchless" they told me that doesn't scale or other idiocy.

mvargasmoran
Автор

Baby dev here: I learned git flow just yesterday and I was so proud of it for a complete day until this video broke my pride bubble :D
But seriously, git flow makes a lot of sense, it's not this difficult. Also there are tools that can automate its flow. But I'll trust this video b/c experience talks first.

tabliqatchi
Автор

you solved my confusion by summarizing the branching strategies once and for all tysm

codesrinivas
Автор

Very well illustrated. I don't think you should waste your time watching any other videos about branching strategies

DaveBizz
Автор

"...because it will feel like I'm on vacation" I ROTFL there! Great explanation btw, thanks

aldyj
Автор

There is a big chunk of strategy that was missed here in relation to trunk based development combined with release branches and environments. My preferred workflow uses trunk based where main/master deploys to a staging environment (or UAT). Then once acceptance testing has completed, a release branch is created to trigger a deployment to production. Hotfixes then can be cherry picked from main into the release branch, as needed, avoiding the branching mess described in this video. This is similar to Gitlab AutoDevOps, but inverted from their default (main/master targets k8s production and other branches target staging environments). This also works well outside of k8s deployment targets.

SynthwaveMindset
Автор

the best video ever i watched about branching strategies. Thanks a lot

InspireAZ
Автор

agreed, feature branching goes insane as well, depending on the number of features being worked in parallel. Toggle flags is a life saver. Feeling sad for teams working on environment strategy. That's a nightmare.

fahadahmed
Автор

Excellent video. Thorough and clear enough for someone who has almost no experience with this!

Checkitwithamagnet
Автор

Wow I spent ages reading on articles and other videos and I could never fully understand branching and versioning until I watched your videos. Thank you!

amarul