গিট কমিট মেসেজ লেখার সঠিক কৌশল: একটি পেশাদার গাইড।

GitHub-এ অর্থবহ এবং সুন্দর commit message লেখা অত্যন্ত গুরুত্বপূর্ণ। এটি শুধু কাজের তথ্য প্রদান করে না, বরং কোডে কী পরিবর্তন করা হয়েছে এবং কেন তা বোঝাতে সাহায্য করে। একটি ভালো commit message টিমের অন্য সদস্যদের সহজে কোড পরিবর্তনগুলো বুঝতে এবং প্রয়োজনীয় পদক্ষেপ নিতে সহায়তা করে। সঠিকভাবে লেখা commit message ভবিষ্যতে কোড রিভিউ, বাগ ফিক্স, ও প্রজেক্ট রক্ষণাবেক্ষণ অনেক সহজ করে তোলে।

নিচে commit message লেখার জন্য বিভিন্ন প্রিফিক্স এবং সেগুলো কখন ব্যবহার করবেন তা নিয়ে আলোচনা করা হলো:

  • fix: যখন কোনো বাগ ফিক্স করা হয়।
    উদাহরণ: fix: Fix crashing issue on profile page

  • feat: নতুন ফিচার যুক্ত করা হলে।
    উদাহরণ: feat: Add social login feature

  • hotfix: জরুরি ভিত্তিতে বাগ ফিক্স করতে।
    উদাহরণ: hotfix: Patch critical issue with checkout flow

  • ui: ইউজার ইন্টারফেসে পরিবর্তন করলে।
    উদাহরণ: ui: Improve button spacing on the homepage

  • style: কোডের স্টাইল বা ফরম্যাটিং পরিবর্তনের জন্য।
    উদাহরণ: style: Format CSS for better readability

  • docs: ডকুমেন্টেশন পরিবর্তন বা আপডেট করার সময়।
    উদাহরণ: docs: Add contribution guidelines to README

  • chore: সাধারণ administrative কাজের জন্য।
    উদাহরণ: chore: Update Babel configuration

  • ci: Continuous Integration বা Continuous Deployment সম্পর্কিত পরিবর্তন বোঝাতে।
    উদাহরণ: ci: Add new lint check to GitHub Actions workflow

  • perf: পারফরম্যান্স বৃদ্ধির জন্য পরিবর্তন করা হলে।
    উদাহরণ: perf: Optimize database queries for faster response time

  • cleanup: অব্যবহৃত কোড বা ফাইল সরানোর জন্য।
    উদাহরণ: cleanup: Remove unused legacy code from payment module

  • build: বিল্ড সিস্টেমে কোনো পরিবর্তন করলে।
    উদাহরণ: build: Configure Docker for production deployment

  • test: টেস্ট কোড যোগ করা বা বিদ্যমান টেস্ট আপডেট করার জন্য।
    উদাহরণ: test: Add integration tests for payment gateway

  • revert: পূর্বের কোনো commit বাতিল করতে।
    উদাহরণ: revert: Revert changes made in commit 123abc

  • deps: প্রজেক্টের ডিপেন্ডেন্সি আপডেট করার সময়।
    উদাহরণ: deps: Upgrade express to version 4.17.1

  • rollback: পূর্বের কোনো পরিবর্তন প্রডাকশন থেকে ফিরিয়ে নেওয়ার জন্য।
    উদাহরণ: rollback: Rollback API version due to performance issues

  • i18n: আন্তর্জাতিককরণ বা ভাষাগত পরিবর্তন বোঝাতে।
    উদাহরণ: i18n: Add Spanish translations for login page

  • env: পরিবেশ সম্পর্কিত কনফিগারেশন পরিবর্তনের জন্য।
    উদাহরণ: env: Update API base URL for production environment

  • a11y: অ্যাপের অ্যাক্সেসিবিলিটি উন্নত করতে।
    উদাহরণ: a11y: Improve focus states for keyboard navigation

  • security: নিরাপত্তা সম্পর্কিত কোনো সমস্যা সমাধান করতে।
    উদাহরণ: security: Fix SQL injection vulnerability in user login

  • prod: প্রোডাকশন এনভায়রনমেন্টে কোনো পরিবর্তন বোঝাতে।
    উদাহরণ: prod: Enable feature flag for production release

  • api: API সংশ্লিষ্ট কোনো পরিবর্তন করতে।
    উদাহরণ: api: Add endpoint for user subscription status

  • infra: ইনফ্রাস্ট্রাকচার বা ডেপ্লয়মেন্ট পদ্ধতিতে পরিবর্তন আনতে।
    উদাহরণ: infra: Move deployment to AWS

  • analytics: নতুন অ্যানালিটিক্স ট্র্যাকিং যুক্ত বা পরিবর্তন করতে।
    উদাহরণ: analytics: Add tracking for user signup flow

  • config: প্রজেক্টের কনফিগারেশন সেটিংস পরিবর্তন করতে।
    উদাহরণ: config: Update environment variables for staging server

  • lint: লিন্টিং বা কোড স্টাইল চেকিং-এর জন্য।
    উদাহরণ: lint: Fix linter errors in user service module

  • types: টাইপ বা টাইপিং সম্পর্কিত পরিবর্তন করতে।
    উদাহরণ: types: Update types for user authentication module

  • mock: টেস্টের জন্য মক ডেটা বা মক সার্ভিস যুক্ত করলে।
    উদাহরণ: mock: Add mock API responses for user module

  • locale: ভাষাগত পরিবর্তন বা নতুন ভাষা যুক্ত করার জন্য।
    উদাহরণ: locale: Add support for French translations

  • patch: ছোট বা অপ্রত্যাশিত ফিক্স বোঝাতে।
    উদাহরণ: patch: Quick fix for payment gateway bug

  • release: নতুন ভার্সন বা রিলিজ তৈরি করার সময়।
    উদাহরণ: release: Version 2.3.0 release

  • ux: ইউজার এক্সপেরিয়েন্স (UX) উন্নতির জন্য।
    উদাহরণ: ux: Improve signup flow for new users

  • schema: ডাটাবেস স্কিমায় পরিবর্তন করতে।
    উদাহরণ: schema: Add indexes to user table for better performance

  • seo: SEO (Search Engine Optimization) সম্পর্কিত কাজের জন্য।
    উদাহরণ: seo: Update meta tags for better search ranking

  • responsive: রেস্পনসিভ ডিজাইন সংক্রান্ত পরিবর্তন করতে।
    উদাহরণ: responsive: Make homepage mobile-friendly

  • data: ডাটার সাথে সম্পর্কিত পরিবর্তন করতে।
    উদাহরণ: data: Update user dataset with new demographics

  • migration: ডাটাবেজ মাইগ্রেশন সংক্রান্ত পরিবর্তনের জন্য।
    উদাহরণ: migration: Add migration script for user table structure

  • ux/ui: যখন ব্যবহারকারীর অভিজ্ঞতা (UX) এবং ইন্টারফেস (UI) দুটোরই উন্নতি করা হয়।
    উদাহরণ: ux/ui: Enhance mobile navigation and button interactions

  • accessibility: অ্যাক্সেসিবিলিটি উন্নতির জন্য।
    উদাহরণ: accessibility: Improve contrast for text readability

  • refactor: কোড পুনর্গঠন করা হলেও কোনো কার্যকারিতা পরিবর্তন না করা হলে।
    উদাহরণ: refactor: Simplify authentication module logic

  • debug: ডিবাগিং সম্পর্কিত কাজের জন্য।
    উদাহরণ: debug: Add logging for payment errors

  • benchmark: পারফরম্যান্স মূল্যায়নের জন্য নতুন বেনচমার্ক বা টেস্ট যুক্ত করা হলে।
    উদাহরণ: benchmark: Add benchmarks for API response times

  • deploy: যখন কোনো ফিচার প্রোডাকশনে ডেপ্লয় করা হয়।
    উদাহরণ: deploy: Deploy version 2.3.1 to production server

  • integrate: থার্ড-পার্টি সার্ভিস বা API ইন্টিগ্রেট করতে।
    উদাহরণ: integrate: Add Stripe API integration for payments

  • analytics/tracking: ব্যবহারকারীর কার্যকলাপ বা ডেটা ট্র্যাক করার জন্য পরিবর্তন করা হলে।
    উদাহরণ: analytics/tracking: Add Google Analytics to track page views

  • optimize: যখন কোড বা অ্যাপের অপ্টিমাইজেশন করা হয়।
    উদাহরণ: optimize: Improve image loading times

  • enhance: কোনো ফিচার বা ফাংশনালিটি উন্নত করার জন্য।
    উদাহরণ: enhance: Improve search functionality for better accuracy

  • module: নতুন মডিউল যোগ করার জন্য।
    উদাহরণ: module: Add user profile management module

  • cleanup/code: অপ্রয়োজনীয় কোড বা ফাইল মুছে ফেলার জন্য।
    উদাহরণ: cleanup: Remove deprecated functions

এই প্রিফিক্সগুলো আপনার commit messageগুলোকে আরও নির্দিষ্ট ও কার্যকর করবে এবং টিমের অন্য সদস্যদের সহজেই বুঝতে সাহায্য করবে কী ধরনের কাজ করা হয়েছে।

23 Likes

Commit er somoi ato kisu mathai thake na ar ak shate onek files change kora lage so akta type mension korau kamon lage

Apni mainly git commit gula kokon koren ?

1 Like

We can use this package for linting commit message

And use GitHub pre-commit hook for running this lint

1 Like

Yes, it’s difficult to maintain when working alone, but a team member can always help with this. You can try this first: GitHub - commitizen/cz-cli: The commitizen command line utility. #BlackLivesMatter

1 Like

people aslo use this package widely: GitHub - typicode/husky: Git hooks made easy 🐶 woof!

1 Like