Skip to content

đŸŒŋ āĻĢāĻŋāϚāĻžāϰ āĻŦā§āϰāĻžāĻžā§āϚ āĻ“ā§ŸāĻžāĻ°ā§āĻ•āĻĢā§āϞ⧋ ​

📌 āĻĢāĻŋāϚāĻžāϰ āĻŦā§āϰāĻžāĻžā§āϚ āĻ“ā§ŸāĻžāĻ°ā§āĻ•āĻĢā§āϞ⧋ āϕ⧀? ​

Feature Branch Workflow āĻšāϞ āĻāĻŽāύ āĻāĻ•āϟāĻŋ Git workflow āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύāϤ⧁āύ āĻĢāĻŋāϚāĻžāϰ/āĻŦāĻžāĻ— āĻĢāĻŋāĻ•ā§āϏ/āϟāĻžāĻ¸ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž āĻāĻ•āϟāĻŋ āĻŦā§āϰāĻžāĻžā§āϚ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻŽā§‚āϞ āĻŦā§āϰāĻžāĻžā§āĻšā§‡ (main/master) āϏāϰāĻžāϏāϰāĻŋ āĻ•āĻžāϜ āύāĻž āĻ•āϰ⧇, āĻāχ āφāϞāĻžāĻĻāĻž āĻŦā§āϰāĻžāĻžā§āĻšā§‡ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻļ⧇āώ⧇ Merge āĻ•āϰāĻž āĻšā§ŸāĨ¤

āĻāϟāĻŋ āĻ•ā§āϞāĻŋāύ āϕ⧋āĻĄāĻŦ⧇āϏ, āϏāĻšāϜ āϟāĻŋāĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ•, āĻ“ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻĻā§‡ā§ŸāĨ¤

đŸŽ¯ āϕ⧇āύ Feature Branch Workflow āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ? ​

  • ✨ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĢāĻŋāϚāĻžāϰ āφāϞāĻžāĻĻāĻž āĻĨāĻžāĻ•āĻŦ⧇
  • 🤝 āϟāĻŋāĻŽ āĻŽā§‡āĻŽā§āĻŦāĻžāϰāϰāĻž āĻāϕ⧇ āĻ…āĻ¨ā§āϝ⧇āϰ āĻ•āĻžāĻœā§‡āϰ āωāĻĒāϰ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĢ⧇āϞāĻŦ⧇ āύāĻž
  • đŸ§Ē CI/CD āĻŦāĻž QA-āϤ⧇ āφāϞāĻžāĻĻāĻž āĻĢāĻŋāϚāĻžāϰ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āϏāĻšāϜ āĻšā§Ÿ
  • 🔙 āϏāĻšāĻœā§‡ āϕ⧋āύ⧋ āĻĢāĻŋāϚāĻžāϰ āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāĻž āĻŦāĻž āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āĻ•āϰāĻž āϝāĻžā§Ÿ

đŸ› ī¸ Step by Step āĻŦāĻžāĻ¸ā§āϤāĻŦ āωāĻĻāĻžāĻšāϰāĻŖ ​

āϧāϰāĻŋ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ Laravel āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ "User Profile Edit" āĻĢāĻŋāϚāĻžāϰ āϝ⧋āĻ— āĻ•āϰāϛ⧇āύāĨ¤

ā§§. ✅ āĻŽā§‚āϞ āĻŦā§āϰāĻžāĻžā§āĻšā§‡ āĻĨāĻžāϕ⧁āύ (main/master) ​

bash
git checkout main
git pull origin main
git checkout main
git pull origin main

⧍. đŸŒŋ āύāϤ⧁āύ āĻĢāĻŋāϚāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦā§āϰāĻžāĻžā§āϚ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ ​

bash
git checkout -b feature/user-profile-edit
git checkout -b feature/user-profile-edit

ā§Š. âœī¸ āĻ•āĻžāϜ āĻ•āϰ⧁āύ ​

  • UserController.php āĻĢāĻžāχāϞ⧇ āϕ⧋āĻĄ āϞāĻŋāϖ⧁āύ
  • edit.blade.php āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ
  • routes/web.php āĻ route āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ
php
Route::get('/profile/edit', [UserController::class, 'edit']);
Route::get('/profile/edit', [UserController::class, 'edit']);

ā§Ē. đŸ“Ļ āĻ•āĻžāϜ āĻļ⧇āώ āĻšāϞ⧇ Commit āĻ•āϰ⧁āύ ​

bash
git add .
git commit -m "Add user profile edit page"
git add .
git commit -m "Add user profile edit page"

ā§Ģ. 🚀 Push āĻ•āϰ⧁āύ āϰāĻŋāĻŽā§‹āĻŸā§‡ ​

bash
git push origin feature/user-profile-edit
git push origin feature/user-profile-edit

ā§Ŧ. đŸ§Ē GitHub āĻ āĻ—āĻŋā§Ÿā§‡ Pull Request (PR) āϖ⧁āϞ⧁āύ ​

  • base: main
  • compare: feature/user-profile-edit

ā§­. ✅ āϟāĻŋāĻŽāĻŽā§‡āϟ āϰāĻŋāĻ­āĻŋāω āĻ•āϰāĻŦ⧇ → Merge āĻ•āϰāϞ⧇ main āĻ āϝāĻžāĻŦ⧇ ​

đŸ§Ē āφāϰāĻ“ āωāĻĻāĻžāĻšāϰāĻŖ ​

āωāĻĻāĻžāĻšāϰāĻŖ ā§§: Bug fix āĻŦā§āϰāĻžāĻžā§āϚ ​

bash
git checkout -b fix/login-error
# āĻ•āĻžāϜ āĻ•āϰ⧁āύ
git commit -am "Fix login redirect issue"
git push origin fix/login-error
git checkout -b fix/login-error
# āĻ•āĻžāϜ āĻ•āϰ⧁āύ
git commit -am "Fix login redirect issue"
git push origin fix/login-error

āωāĻĻāĻžāĻšāϰāĻŖ ⧍: āύāϤ⧁āύ API āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻžāϰ āĻ•āĻžāϜ ​

bash
git checkout -b feature/add-payment-api
# āĻ•āĻžāϜ āĻ•āϰ⧁āύ
git commit -am "Add payment gateway API integration"
git push origin feature/add-payment-api
git checkout -b feature/add-payment-api
# āĻ•āĻžāϜ āĻ•āϰ⧁āύ
git commit -am "Add payment gateway API integration"
git push origin feature/add-payment-api

🔁 Merge āĻŦāĻž Rebase? ​

PR Merge āĻ•āϰāϞ⧇ āĻ•āĻŽāĻŋāϟ āĻšāĻŋāĻ¸ā§āĻŸā§‹āϰāĻŋ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ Rebase āĻ•āϰāϞ⧇ āĻšāĻŋāĻ¸ā§āĻŸā§‹āϰāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻĨāĻžāĻ•āĻŦ⧇ — āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•āύāĻĢā§āϞāĻŋāĻ•ā§āϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϛ⧋āϟ āϟāĻŋāĻŽā§‡ merge āĻ…āύ⧇āĻ• āϏāĻšāϜāĨ¤ āĻŦ⧜ āϟāĻŋāĻŽā§‡ rebase āĻ•āϰāϞ⧇ āχāϤāĻŋāĻšāĻžāϏ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻšā§ŸāĨ¤

🧩 Branch Naming Convention ​

āĻ•āĻžāĻœā§‡āϰ āϧāϰāύāĻŦā§āϰāĻžāĻžā§āϚ āύāĻžāĻŽā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖ
āĻĢāĻŋāϚāĻžāϰfeature/user-auth
āĻŦāĻžāĻ— āĻĢāĻŋāĻ•ā§āϏfix/cart-total
āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύdocs/api-endpoints
āϰāĻŋāĻĢā§āϝāĻžāĻ•ā§āϟāϰrefactor/product-service

🧠 Bonus: Remote Collaborator Workflow ​

āϧāϰāĻŋ āĻĻ⧁āχāϜāύ āĻāĻ•āχ āĻĢāĻŋāϚāĻžāϰ⧇ āĻ•āĻžāϜ āĻ•āϰāϛ⧇āύ:

  • dev1 → feature/user-profile-edit
  • dev2 → āĻāĻ•āχ āĻŦā§āϰāĻžāĻžā§āĻšā§‡ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ
bash
git pull origin feature/user-profile-edit
# dev2 āĻ•āĻžāϜ āĻ•āϰ⧇
git push origin feature/user-profile-edit
git pull origin feature/user-profile-edit
# dev2 āĻ•āĻžāϜ āĻ•āϰ⧇
git push origin feature/user-profile-edit

âžĄī¸ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϕ⧋āĻĄ āĻ•āύāĻĢā§āϞāĻŋāĻ•ā§āϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻžāχ āĻ¸ā§āĻ•ā§āϰāĻžāĻŽ āϟāĻŋāĻŽā§‡ āĻ­āĻžāĻ— āĻ•āϰ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāχ āĻ­āĻžāϞ⧋āĨ¤

🛑 āϏāĻžāĻŦāϧāĻžāύāϤāĻž ​

āϭ⧁āϞ āĻ•āĻžāϜāϏāĻŽāĻ¸ā§āϝāĻž
main-āĻ āϏāϰāĻžāϏāϰāĻŋ āĻ•āĻžāϜproduction code āύāĻˇā§āϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇
āĻ…āύ⧇āĻ•āĻĻāĻŋāύ merge āύāĻž āĻ•āϰāĻžāĻ•āύāĻĢā§āϞāĻŋāĻ•ā§āϟ āϜāĻŽā§‡ āϝāĻžā§Ÿ
commit message āĻ…āĻ¸ā§āĻĒāĻˇā§āϟāĻŦ⧁āĻāϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻšā§Ÿ āϕ⧇ āϕ⧀ āĻ•āϰ⧇āϛ⧇

✅ āϏ⧇āϰāĻž āĻ…āύ⧁āĻļā§€āϞāύ (Best Practices) ​

  • āϛ⧋āϟ āϛ⧋āϟ feature āĻŦā§āϰāĻžāĻžā§āϚ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ
  • āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ main āĻŦā§āϰāĻžāĻžā§āϚ āĻĨ⧇āϕ⧇ pull āĻ•āϰ⧁āύ
  • meaningful āĻŦā§āϰāĻžāĻžā§āϚ āύāĻžāĻŽ āĻĻāĻŋāύ
  • āĻĢāĻŋāϚāĻžāϰ āĻļ⧇āώ⧇ PR āĻĻāĻŋāύ
  • merge āĻ•āϰāĻžāϰ āφāϗ⧇ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰ⧇ āύāĻŋāύ

🚧 Feature Branch Workflow with CI/CD ​

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĢāĻŋāϚāĻžāϰ āĻŦā§āϰāĻžāĻžā§āĻšā§‡āχ automatic test run āĻ•āϰāĻž āϝāĻžā§Ÿ GitHub Actions āĻŦāĻž GitLab CI āĻĻāĻŋā§Ÿā§‡āĨ¤ āĻāϤ⧇ āĻĢāĻŋāϚāĻžāϰ merge āĻšāĻ“ā§ŸāĻžāϰ āφāϗ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āϧāϰāĻž āĻĒā§œā§‡āĨ¤

🌐 GitHub Example Flow ​

  1. feature/chat-box → push āĻ•āϰāϞ⧇āύ
  2. GitHub āĻ PR āϤ⧈āϰāĻŋ āĻ•āϰāϞ⧇āύ
  3. CI passed ✅
  4. Reviewer Approve āĻĻāĻŋāϞ⧋
  5. Merge to main 🎉
  6. Deployment triggered 🚀

đŸ“Ļ āωāĻĒāϏāĻ‚āĻšāĻžāϰ ​

Feature Branch Workflow āϖ⧁āĻŦāχ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻāĻ•āϟāĻŋ Git āĻ•ā§ŒāĻļāϞ, āϝāĻž modern āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻĒā§āϰāĻžā§Ÿ āϏāĻŦ āϟāĻŋāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻļ⧁āϧ⧁ āϟāĻŋāĻŽāĻ“ā§ŸāĻžāĻ°ā§āĻ• āϏāĻšāϜ āĻ•āϰ⧇ āύāĻž, āĻŦāϰāĻ‚ production-āĻ code āύāĻŋā§Ÿā§‡ āϝāĻžāĻ“ā§ŸāĻžāϰ āφāϗ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ layer-āĻ āĻŸā§‡āĻ¸ā§āϟ āĻ“ āϰāĻŋāĻ­āĻŋāĻ‰ā§Ÿā§‡āϰ āϏ⧁āϝ⧋āĻ— āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤

Released under the MIT License.