Let’s Git Familiar — Part 3: Git Workflows

1. Centralized (Basic) Git Workflow

This image is taken from: https://zepel.io/blog/5-git-workflows-to-improve-development/

Pros

  • It is easy to understand for a new learner or a recent SVN user
  • If used properly there should not be any merge conflicts to deal with
  • Easy to managed for small teams

Cons

  • Hard to recover from any mistakes
  • It gets complicated and messy to manage when the development team gets larger
  • It limits the multiple task at the same time on the repository when it comes to bug fixes and deployments

2. Feature Branching Git Workflow

This image is taken from: https://zepel.io/blog/5-git-workflows-to-improve-development/

Pros

  • The main branch always has finished code
  • Makes it easy to develop and maintain features without disturbing the main branch

Cons

  • When more than one developer work on the same feature it can get hard to manage the future branch
  • If a future branch lifespan gets longer, it can make the merging difficult with a lot of conflicts

3. Trunk-based Development Git Workflow (Develop Branch)

This image is taken from: https://zepel.io/blog/5-git-workflows-to-improve-development/

Pros

  • The release-ready code is tested as a whole with all the new features added before merging with main branch
  • Main branch is kept as clean as possible
  • It allows to make minor and swift code changes without caring about breaking the main branch

Cons

  • Adds complexity to the management of the repository with requiring extra steps
  • Requires a developer to manage the conflicts locally
  • Requires regular updates to make the main branch up to date

4. Personal Branching Git Workflow

Pros

  • Developers can experiment more freely
  • It makes the branch management easier since there is only one branch per team member
  • Easy to implement small changes to the code like bug fixes etc.

Cons

  • Does not give flexibility like feature branching when implementing big features
  • If the application has a lot of features developing at the same time, this workflows makes repository management difficult

5. Forking Git Workflow

Pros

  • It is a great and secure way to manage the open-source project repositories
  • The central repository owner has the full control of its code to merge only the high quality contribution
  • Makes it easy to maintain the repository for large teams

Cons

  • It is a longer process compared to the other workflows

6. Gitflow Git Workflow

This image is taken from: https://zepel.io/blog/5-git-workflows-to-improve-development/

Pros

  • The release branch makes the reviewing and conflict resolving process easier
  • With the hotfix branch, it is easy and quick to make small bug fixings
  • This workflow is great for large teams since it is secure and easy to manage

Cons

  • The team should be careful when hotfixing since it can cause a problem directly to the production code
  • It is a longer process compared to more basic workflow

--

--

--

Software Engineer

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Dynamically Manage and Update Cache Target API Lists of ARCUS Application

Max Max Algorithm in Grid Computing with code in C

Ukrainian Developer Built a $19.3 Billion App — Because Silicon Valley Was Too Ignorant to Do It

Documentation in Software Architecture

What is Patent Docketing?

A Different Way To Check Database Performance

The Myriad Post: June 30th, 2022

Difference Between Python List and NumPy Array

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
İsmail GÖK

İsmail GÖK

Software Engineer

More from Medium

Git Git Git! One of The Most Important Utilities in History, Git Tips and Experience!

Adding professional tools and best practices to your side projects

Understanding common confusing GIT concepts

[#WomenInTech] Journey from Software Development to DevOps