Building Git Elegance: Gitflow Workflow in Action
Cristian Sifuentes

Cristian Sifuentes @cristiansifuentes

About: 🧠 Full-stack dev crafting scalable apps with [NET - Azure], [Angular - React], Git, SQL & extensions. Clean code, dark themes, atomic commits.

Joined:
Apr 15, 2025

Building Git Elegance: Gitflow Workflow in Action

Publish Date: May 13
0 0

Building Git Elegance

🎨 Building Git Elegance: Gitflow Workflow in Action

Bring rhythm to your development process through the Gitflow methodology.

In modern software development, teams often struggle with managing features, hotfixes, and release versions across different environments. Gitflow offers a structured yet flexible branching strategy that balances discipline with agility.

In this guide, you’ll walk through a real-world Gitflow setup, including how to manage features, prepare releases, and perform hotfixes—like a Git artist painting a timeline of collaborative code.


What is Gitflow?

Gitflow is a branching model that organizes work into different tracks:

  • main: Stable, production-ready.
  • develop: Staging area for upcoming releases.
  • feature/*: Individual feature branches.
  • release/*: Final testing and version bumping.
  • hotfix/*: Emergency fixes on production.

Each branch has a purpose. The workflow ensures clean merges, version tagging, and organized development.


Real-World Gitflow: Step-by-Step

Let’s dive into commands that illustrate the daily developer journey using Gitflow.

Setup the Repository

git init
git checkout -b main
git commit --allow-empty -m "Initial main commit"
git checkout -b develop
git commit --allow-empty -m "Initial develop commit"
git push -u origin main
git push -u origin develop
Enter fullscreen mode Exit fullscreen mode

Start a New Feature

git checkout develop
git pull origin develop
git checkout -b feature/user-authentication
# Implement the login logic
git add .
git commit -m "feat: implement login form"
git push -u origin feature/user-authentication
Enter fullscreen mode Exit fullscreen mode

Finish the Feature

git checkout develop
git pull origin develop
git merge --no-ff feature/user-authentication
git branch -d feature/user-authentication
git push origin --delete feature/user-authentication
Enter fullscreen mode Exit fullscreen mode

Create a Release

git checkout develop
git checkout -b release/1.0.0
git commit -am "Bump version to 1.0.0"
git push -u origin release/1.0.0
Enter fullscreen mode Exit fullscreen mode

Merge it to main and tag it:

git checkout main
git merge --no-ff release/1.0.0
git tag -a v1.0.0 -m "Release 1.0.0"
git push origin main --tags
Enter fullscreen mode Exit fullscreen mode

Then merge back to develop:

git checkout develop
git merge --no-ff release/1.0.0
git branch -d release/1.0.0
git push origin --delete release/1.0.0
Enter fullscreen mode Exit fullscreen mode

Hotfix Like a Pro

git checkout main
git checkout -b hotfix/1.0.1
# Apply fix
git commit -am "fix: critical bug fix"
git push origin hotfix/1.0.1
Enter fullscreen mode Exit fullscreen mode

Merge to main & develop:

git checkout main
git merge --no-ff hotfix/1.0.1
git tag -a v1.0.1 -m "Hotfix release"
git push origin main --tags

git checkout develop
git merge --no-ff hotfix/1.0.1
git branch -d hotfix/1.0.1
git push origin --delete hotfix/1.0.1
Enter fullscreen mode Exit fullscreen mode

Advanced Gitflow Essentials

Command Purpose
git rebase -i HEAD~3 Squash recent commits
git stash Temporarily store changes
git cherry-pick <hash> Apply specific commit
git reflog Navigate Git history safely
git mergetool Resolve conflicts visually

Key Practices for Git Artists

Best Practice Why It Matters
Never commit directly to main Protects production integrity
Use feature/ for scoped changes Keeps commits clean and focused
Merge release and hotfix into develop too Ensures code consistency
Use tags for release tracking Enables rollback and documentation
Keep commits atomic Improves readability and history
Automate merges with CI/CD Scales your Git hygiene

Closing Thoughts

Gitflow turns chaotic branch management into an artful, repeatable choreography. Whether you’re fixing a bug or orchestrating a release, it keeps your team aligned and your history pristine.

✨ Embrace Gitflow to:

  • Standardize collaboration
  • Track versions cleanly
  • Ship with confidence

Let Gitflow be your brush—paint your repository with clean history and beautiful structure.

Follow me for more Git techniques, DevOps strategy, and developer craftsmanship! 🛠️✨

Comments 0 total

    Add comment