Version Control

Posted on Sat, Jul 2, 2022 VCS

1. Git Flow

Git Flow is a feature branch model that separates the development, building, and testing of different features. It consists of two long-term branches:

In addition to these main branches, Git Flow defines several other branch types, including:

1.1 Pros

1.2. Cons

2. GitHub Flow

GitHub Flow is a lightweight, branch-based workflow for version control using Git. It is specifically designed to be simple and suitable for teams working on software development projects.

The key principles of GitHub Flow are as follows:

2.1. Pros

2.2. Cons

3. GitLab Flow

GitLab Flow builds upon the concepts of Git flow and GitHub Flow while offering some additional features. Here are the key principles of GitLab Flow:

3.1. Pros

3.2. Cons

4. Trunk Based Development

Trunk Based Development (TBD) is a software development approach that emphasizes frequent integration of code changes into a shared main branch, often referred to as the trunk or mainline. The main principle of Trunk Based Development is to minimize long-lived branches and promote continuous collaboration and integration among developers.

Here are some key characteristics and principles of Trunk Based Development:

4.1. Pros

4.2. Cons

Summary

The document discusses four different version control workflows: Git Flow, GitHub Flow, GitLab Flow, and Trunk Based Development. Each workflow has its own set of pros and cons, with some being more suitable for larger projects or longer release cycles, while others are better suited for web projects or continuous delivery. Git Flow, for example, provides a clear branching model, while GitHub Flow emphasizes simplicity and fast feedback. GitLab Flow builds upon Git Flow and GitHub Flow while offering additional features, and Trunk Based Development emphasizes frequent integration of code changes into a shared main branch.

Reference

github-flow

gitlab-flow