علی یوسفیان
علی یوسفیان
خواندن ۴ دقیقه·۹ ماه پیش

بهترین روش‌های نام‌گذاری برنچ و پیام‌های Commit در گیت


سلام دوستان، در این مطلب قصد دارم به چند روش بهتر برای استفاده از گیت به صورت موثرتر بپردازم. گیت؟ بله، همان گیتی که قبلاً با آن آشنا هستید.

آیا شما یکی از آن دسته افراد هستید که برنچ ایجاد می‌کنند و سپس فراموش می‌کنند چرا وجود دارند؟ آیا همیشه باید به دنبال تغییرات فایل بگردید تا یک Commit را درک کنید؟ در ادامه چند نکته به شما خواهم گفت.

چرا باید استانداردها را دنبال کنم؟

1. وضوح و درک

2. همکاری و تیم‌کاری

3. راحتی در ناوبری و نگهداری

4. مستندسازی و انتقال دانش

5. کیفیت پروژه

6. لیست تغییرات خودکار

7. بهینه‌سازی CI/CD

پیش از مطالعه

هر زیربخش زیر عنوان‌های "اصول نام‌گذاری برنچ" و "اصول پیام Commit" به ترتیب به عنوان قواعد پایه، میانی و پیشرفته مرتب شده‌اند.

شما می‌توانید به هر سطح قوانین بر اساس مورد استفاده و ارتباط مناسب دنبال کنید؛ با این حال پیشنهاد می‌شود که تا سطح قوانین میانی پیش بروید.

اصول نام‌گذاری شاخه

1. نام‌های توصیفی: یک شاخه با نام مناسب، مفهومی فوری از هدف آن را ارائه می‌دهد. به جای نام‌های عمومی، انتخاب کنید.

feature/login
bugfix/navbar-overflow

2. استفاده از خط تیره: از خط تیره برای جدا کردن کلمات (یا kebab case) در نام شاخه استفاده کنید، این باعث خوانایی می‌شود.

bugfix/fix-login-issue

3. کاراکترهای الفبایی کوچک عددی:فقط از کاراکترهای الفبایی کوچک (a-z، 0-9) و خط تیره استفاده کنید. از علائم نگارشی، فاصله، آندرلاین، یا هر کاراکتر ویژه دیگری هنگام ممکن اجتناب کنید.


4. اجتناب از خطوط خطازی غیرضروری:از خطوط غیرضروری مثل خطوط پشت سر هم یا پایانی اجتناب کنید.

feat/new--login

5. کوتاه و موثر: نام‌های شاخه را ساده نگه دارید. هر چند توصیفی باشند، باید کافی مختصر باشند تا هدف را به یک نگاه درک کنید.

پیشوند یا نوع

پیشوند دادن به شاخه‌ها کمک می‌کند تا بر اساس هدف آن‌ها سازماندهی شوند. این نه تنها وضوح را افزایش می‌دهد بلکه به اتوماسیون جریان‌های کاری کمک می‌کند.


برخی از پیشوندهای رایج نوع شاخه و کاربردهای آنها عبارتند از:

- feature/:برای توسعه ویژگی‌های جدید.
- bugfix/: برای رفع اشکالات در کد. اغلب به همراه یک مسئله ایجاد می‌شود.
- hotfix/:

برای رفع اشکالات حیاتی در محصول.

- release/: برای آماده‌سازی یک نسخه جدید، معمولاً برای انجام وظایفی مانند لمس‌های آخر و بازبینی‌ها.
- docs/:برای نوشتن، اصلاح یا اصلاح مستندات.

شامل شماره تیکت

اگر پروژه شما از یک سیستم پیگیری issue مانند Jira استفاده می‌کند یا اگر بر اساس issue
GitHub یا یک ابزار مشابه دیگر بازبینی می‌شود، اضافه کردن توکن مسئله به نام شاخه امکان پیگیری آن را آسان می‌کند. مثال: feature/PROJ-123-footer-links


متن کامیت ها

<type>([optional scope]): <description> # subject [optional body] [optional footer(s)]

پیام موضوع به صورت دستوری:

کامیت‌ها رو با لحن دستوری بسازید.

برای نشون دادن کار کامیت با یه فعل شروع کنید.

مثال: به جای "fix: Fixed bug #67" از "fix: Fix bug #67" استفاده کنید.

کوتاه و خلاصه:

سعی کنید موضوع رو زیر 50 کاراکتر جا بدید تا تو ابزارهای مختلف گیت، مثل git log --oneline، خوانا باشه. نقطه انتهایی و کلمات/симبل های اضافه رو حذف کنید.

با حرف بزرگ شروع کنید:

خیلی ساده، موضوع رو با حرف بزرگ شروع کنید

نوع و بدنه پیام:

یک پیشوند "نوع" در موضوع میتونه نوع تغییرات داخل کامیت رو نشون بده. بعضی از انواع رایج عبارتند از:

  • feat:: برای خلاصه سازی یه قابلیت جدید در کد.
  • fix:: برای نشون دادن رفع یه باگ.
  • مثال‌های دیگه عبارتند از build:, chore:, ci:, style:, refactor:.

میتونید با اضافه کردن یه "اسکوپ" داخل پرانتز به نوع کامیت، اطلاعات زمینه‌ای بیشتری بدید. مثلا:

feat(parser): Add the ability to parse arrays.

میتونید با گذاشتن یه خط خالی بعد از موضوع، یه "بدنه" به پیام اضافه کنید تا توضیحات بیشتری بدید.

بدنه رو به چند خط تقسیم کنید که هر کدوم از 72 کاراکتر رو رد نکنه.

پاورقی و بدنه توسعه یافته پیام

یک پاورقی برای انتقال اطلاعات اضافی مربوط به کامیت، مانند بازبینی‌کننده، تأیید کننده و غیره، استفاده می‌شود. مثال:

Signed-off-by: Alice <alice@example.com>

تغییر اساسی (Breaking Change): تغییر اساسی به تغییرات نسبتاً مهمی در کد اشاره می‌کند که می‌تواند با اضافه کردن علامت "!" بعد از نوع/محدوده یا اضافه کردن آن با بدن یا به عنوان پاورقی نشان داده شود.

توضیح بیشتر

  • پاورقی جایگزین مناسبی برای اطلاعاتی است که مستقیماً به خود تغییر مرتبط نیستند، مانند تأییدکننده یا کمیته‌ای که آن را بررسی کرده است.
  • Breaking Change زمانی مهم است که کد جدید به روشی ناسازگار با نسخه قبلی کار کند. با افزودن علامت "!"، توسعه‌دهندگان دیگر را از پتانسیل شکستن کد موجود آگاه می‌کند.
  • هر اطلاعات اضافی‌ای که می‌خواهید برای درک بهتر کامیت ضروری نباشد را می‌توان در این بخش‌ها گنجاند.

نکات مهم

  • پاورقی و بدنه توسعه‌یافته برای جزئیات بیشتر هستند و همیشه ضروری نیستند.
  • از استفاده بیش از حد پاورقی برای اطلاعات غیر ضروری که می‌توان آن‌ها را از طریق ابزارهای دیگر ردیابی کرد، خودداری کنید.
  • هنگام استفاده از تغییر اساسی، تغییرات ناسازگار و تأثیرات احتمالی آن‌ها را به طور واضح توضیح دهید.
chore!: drop support for Nod BREAKING CHANGE: use JavaScript features not available in Node 6



منبع
https://www.conventionalcommits.org/en/v1.0.0/#examples

ci cdنام‌گذاری برنچگیت
همیشه برنامه‌نویس ولی یه برنامه‌نویس متن باز عاشق پایتون جنگو و تحلیل داده
شاید از این پست‌ها خوشتان بیاید