Get Good with Git: Part 6 - Git Workflows

In this blog post, we will discuss four popular Git workflows: the Centralized workflow, Feature branch workflow, Gitflow workflow, and Forking workflow. We will also provide code examples to help you understand each workflow.

Get Good with Git by OSSPH Part 6
Get Good with Git by OSSPH Part 6

Git offers a wide range of workflows to manage code collaboration, from centralized to decentralized models.

In this blog post, we will discuss four popular Git workflows: the Centralized workflow, Feature branch workflow, Gitflow workflow, and Forking workflow. We will also provide code examples to help you understand each workflow.

Centralized Workflow

The Centralized workflow is one of the simplest Git workflows, where all team members collaborate on a single branch. This workflow is commonly used in small teams or projects where there is only one central repository.

In this workflow, developers clone the repository to their local machines, make changes, and push them back to the central repository. Here's an example:

Clone the repository to your local machine

git clone https://github.com/example/repo.git

Make changes to the code

# Edit some files

Stage the changes

git add .

Commit the changes

git commit -m "Add new feature"

Push the changes to the central repository

git push origin new-feature

Merge the changes into the master branch

git checkout master
git merge new-feature
git push origin master

Gitflow Workflow

The Gitflow workflow is a comprehensive Git workflow that provides a robust branching model for complex projects. This workflow includes two primary branches: a master branch for stable releases and a develop branch for ongoing development.

In this workflow, developers create feature branches from the develop branch, and once the feature is complete, merge the changes back into the develop branch. Here's an example:

Create a new feature branch from the develop branch

git checkout develop
git checkout -b feature/new-feature

Make changes to the code

# Edit some files

Stage the changes

git add .

Commit the changes

git commit -m "Add new feature"

Push the changes to the central repository

git push origin feature/new-feature

Merge the feature branch into the develop branch

git checkout develop
git merge --no-ff feature/new-feature
git push origin develop

Once the develop branch is stable, merge it into the master branch

git checkout master
git merge --no-ff develop
git push origin master

Forking Workflow

The Forking workflow is commonly used in open-source projects where external contributors submit changes to a project. In this workflow, contributors create their own fork of the project and make changes on their forked repository.

Once the changes are complete, contributors submit a pull request to the original project's repository. Here's an example:

Fork the original repository to your account

Clone your forked repository to your local machine

git clone https://github.com/yourusername/repo.git

Create a new branch for your changes

git checkout -b new-feature

Make changes to the code

# Edit some files

Stage the changes

git add .

Commit the changes

git commit -m "Add new feature"

Push the changes to your forked repository

git push origin new-feature

Submit a pull request to the original repository from your forked repository

These four Git workflows provide different levels of complexity and flexibility for managing code collaboration. It's important to choose the right Git workflow for your project based on the size and complexity of the project, as well as the number of contributors involved.

Git is an essential tool for version control in software development. Understanding the different Git workflows and how they work can help developers work collaboratively and efficiently.

End of Part 6 of 10