نوشتن Commit Message خوب در گیت

یکی از توییت هایی که امروز توی توییتر دیدم، این بود:

همون متن رو اینجا هم میذارم که ایندکس بشه:

چرا اصلا مسیج استاندار بنویسیم؟

شما وقتی رزومه میفرستید کارمندان یا مدیر فنی اون شرکت به گیت هاب شما سر میزنن و مسیج شما در هر کامیت اگه معنادار و استاندار باشه، قطعا به نفعتون هست. ممکنه بعد چند مدت بخواید یکی از پروژه هاتون رو کامل کنید و وقتی شروع میکنین متوجه نمیشید کار از چه قراره و اونجا مسیج هایی که زدید بدردتون میخوره.

مسیج یک کامیت به ۲ بخش تقسیم میشه

بخش اول موضوع که همون بعد -m میزنید هست بخش دوم body مسیج هست که اینجا باید از تک ادیتور استفاده کنید مثل vim یا VS code که روشش رو اگر نمیدونید گوگل کنید میاره.

اینم روشش:

https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

۷ قانون مسیج خوب

  • جدا بودن لاین موضوع و body کامیت:‌ شما وقتی میخوای مسیج بزنی اگه body هم بخوای بنویسی باید از ادیتور استفاده کنی و باید بین موضوع و body یک لاین خالی فاصله باشه.
  • محدود کرد خط موضوع به پنجاه کارکتر: سعی کنید موضوع تون کمتر از ۵۰ کارکتر باشه و توضیح رو تو body بنویسید.
  • شروع کردن خط موضوع با حرف بزرگ مثل Add بجای add
  • موضوع رو با نقطه . تموم نکنید.
  • از حالت امری تو موضوع استفاده کنید: توروخدا اینو رعایت کنید نزنید added یا saved یا هرچیز دیگه ای از حالت ساده اش استفاده کنید ، خیلی بده خیلی اگه از گذشته یا ing دار استفاده کنید.
  • وقتی body رو می نویسید بعد از هر ۷۲ کارکتر اینتر بزنید و تو لاین بعدی بنویسید، گیت نمیتونه تو هر لاین بیش از ۷۲ کارکتر جا بده پس خودتون اینتر بزنید ، البته اگه از vs code استفاده کنید خودش ارور میده.
  • تو body که میخواید تو چند خط توضیح بدید که تو این کامیت چه اتفاقی افتاده ، از چرایی و چیستی استفاده کنید نه اینکه چگونه، طرف کور نیست که میبینه کد رو چطوری زدید.

تموم شد ، امیدوارم مفید باشه و رعایت کنید اگه میخواید چندتا نمونه مسیج استاندار ببینید تو گیت هاب به ربپازیتوری لینوکس و خود گیت و ارلنگ مراجعه کنید، کامیت هاشون استاندارد هست.

البته یه توییت دیگه هم نوشتن در این مورد:

برای کامیت از http://conventionalcommits.org استفاده کنید.

برای رلیز از http://semver.org استفاده کنین.

برای workflow هم انتخاب زیاده‌، من خودم تو شرکت و اکثر جاها از GitHub Flow استفاده می‌کنم.