Commit بزرگ را بعداً خودت هم نمیفهمی؛ هر commit یک هدف روشن
یک commit صدها خط تغییر نامرتبط دارد و وقتی باگ پیدا میشود نمیتوانی بدون برگرداندن تغییرهای سالم آن را revert کنی.
تغییر feature، refactor و formatting را تا حد ممکن جدا نگه دار. تاریخچه تمیز فقط برای زیبایی نیست؛ revert و review را امنتر میکند.
چطور دقیقتر به موضوع نگاه کنیم؟
- قبل از commit، diff را بخوان و فایلهای ناخواسته یا debug code را حذف کن.
- اگر دو دلیل مستقل برای تغییر وجود دارد، آنها را به دو commit تقسیم کن.
- پیام commit را با نتیجه بنویس؛ مثل «fix invoice rounding» نه «changes».
- refactor گسترده را اگر ممکن است قبل یا بعد از تغییر رفتار جدا انجام بده.
چرا این موضوع مهم است؟
commit کوچک و همموضوع، رابطه علت و اثر را واضحتر و بررسی diff را سادهتر میکند.
سؤالهایی که معمولاً بعدش پیش میآید
چند فایل در یک commit زیاد است؟
تعداد فایل معیار نیست؛ یک تغییر منطقی ممکن است چند فایل را لازم داشته باشد.
Formatting را جدا کنم؟
اگر diff بزرگ میسازد، جداکردنش review تغییر رفتاری را بسیار آسانتر میکند.
