Day 6: Git Workflows and Best Practices

Git Workflows and Best Practices

Popular Git Workflows

GitFlow Workflow:

Perfect for projects with scheduled releases and multiple environments.

bash

# Initialize GitFlow
git flow init

# Start new feature
git flow feature start user-profile

# Finish feature (merges to develop)
git flow feature finish user-profile

# Start release
git flow release start v1.2.0

# Finish release (merges to main and develop)
git flow release finish v1.2.0

GitHub Flow:

Simpler workflow ideal for continuous deployment.

bash

# Create feature branch from main
git switch main
git pull origin main
git switch -c feature/improve-ui

# Work on feature
git add .
git commit -m "Enhance user interface responsiveness"

# Push and create pull request
git push -u origin feature/improve-ui
# Create PR through GitHub interface

# After approval, merge to main
# Deploy immediately from main

Feature Branch Workflow:

bash

# Each feature gets its own branch
git switch -c feature/payment-integration

# Develop feature
git add .
git commit -m "Integrate Stripe payment processing"

# Merge back to main when complete
git switch main
git merge feature/payment-integration
git branch -d feature/payment-integration

Commit Message Best Practices

Conventional Commits Format:

bash

# Format: type(scope): description
git commit -m "feat(auth): add OAuth2 integration"
git commit -m "fix(api): resolve timeout issues in user endpoints"
git commit -m "docs(readme): update installation instructions"
git commit -m "refactor(database): optimize query performance"
git commit -m "test(auth): add unit tests for login functionality"

Good vs. Bad Commit Messages:

bash

# Bad
git commit -m "fixed stuff"
git commit -m "changes"
git commit -m "update"

# Good
git commit -m "fix(auth): resolve session timeout bug in production"
git commit -m "feat(api): add pagination to user list endpoint"
git commit -m "perf(db): optimize user query with database indexes"

Code Review Best Practices

Creating Review-Friendly PRs:

bash

# Keep changes focused and atomic
git switch -c feature/single-responsibility

# Make small, logical commits
git add auth/login.py
git commit -m "feat(auth): implement basic login functionality"

git add auth/logout.py  
git commit -m "feat(auth): add secure logout mechanism"

git add tests/test_auth.py
git commit -m "test(auth): add comprehensive auth tests"

Branch Protection and Policies

GitHub Branch Protection Rules:

  • Require pull request reviews
  • Require status checks to pass
  • Require branches to be up to date
  • Restrict pushes to specific users/teams
  • Require signed commits

bash

# Example: Enforce signed commits
git config --global commit.gpgsign true
git config --global user.signingkey YOUR_GPG_KEY_ID

Hands-On Exercise: Implement a complete feature using your chosen workflow, following commit message conventions and creating a well-structured pull request.

You Might Also Like

🛠️ Recommended Tools for Developers & Tech Pros

Save time, boost productivity, and work smarter with these AI-powered tools I personally use and recommend:

1️⃣ CopyOwl.ai – Research & Write Smarter
Write fully referenced reports, essays, or blogs in one click.
✅ 97% satisfaction • ✅ 10+ hrs saved/week • ✅ Academic citations

2️⃣ LoopCV.pro – Build a Job-Winning Resume
Create beautiful, ATS-friendly resumes in seconds — perfect for tech roles.
✅ One-click templates • ✅ PDF/DOCX export • ✅ Interview-boosting design

3️⃣ Speechify – Listen to Any Text
Turn articles, docs, or PDFs into natural-sounding audio — even while coding.
✅ 1,000+ voices • ✅ Works on all platforms • ✅ Used by 50M+ people