درود دوستان 👋 گیت یکی از ابزارهایی هست که یاد گرفتن اون خیلی راحته و کافیه دستورات پرکاربرد اون رو به خاطر بسپاریم. اما قسمت سخت اون، نحوهٔ استفاده از اون دستورات هست. کارایی دستوری مثل git commit رو شاید همه بدونیم، اما اینکه کجا و به چه صورت از اون استفاده کنیم نیازمند تجربیاتی هست که توی این قسمت میخوایم اونها رو براتون به اشتراک بذارم.
توی این قسمت نکات زیر رو بررسی میکنیم:
- کامیتهای زود به زود
- متن کامیت خوانا
- استفاده از Feature Branch
- بروزرسانی مرتب با برنچ اصلی
- استفاده از هوکهای گیت
- استفاده از Git Stash
۱. کامیتهای زود به زود
ما باید زود به زود قسمتی از برنامه که توسعهٔ اون تکمیل شده رو کامیت کنیم. در واقع گنجوندن دو ویژگی یا دو چیز غیر مرتبط توی یک کامیت کار مناسبی به حساب نمیاد. ما اینجا یه چیزی مثل اصل اول SOLID رو داریم که میگه هر بخشی باید مسئولیت خاص و مشخصی داشته باشه، هر کامیت هم باید شامل تغییراتی باشه که بهم ارتباط دارن.
این کار مزایای خیلی زیادی داره. یکی از مهمترین اونها اینه که خیلی راحتتر میتونیم تشخیص بدیم توی هر کامیت چه اتفاقی افتاده و چه چیزهایی تغییر کرده. طبیعتاً دیدن چیزهای بیربط به هم توی یک کامیت باعث سردرگمی خواننده میشه.
مزیت دیگهٔ اون برای زمانی هست که میخوایم یک قابلیت که مرج شده رو برگشت بزنیم (Revert). وقتی میخوایم کامیت مد نظر رو Revert کنیم، اگه اون کامیت شامل تغییرات بیربط اما مهم باشه، اون تغییرات بیربط هم ناخواسته Revert میشه.
نکتهٔ مهمی که باید در نظر داشته باشیم حفظ تعادل هست. کامیتهای ما نه باید شامل تغییرات خیلی ریز و جزئی باشن و نه شامل تغییرات گسترده و عظیم. وقتی کامیتهای ما بیش از اندازه ریز باشن، ممکنه قابلیت (Feature) هایی که اضافه کردیم رو مجبور باشیم توی چند کامیت پیدا کنیم که برای خواننده کار سختی به حساب میاد. بنابراین خوبه که همیشه فکر کنیم آیا لازمه الان کامیت کنم یا نه.
۲. متن کامیت خوانا
متن یک کامیت مثل نامگذاری یک متغیر هست و هر دو یه یک اندازه حائز اهمیت هستن. مطمئناً استفاده از "git commit -m "fix bug مثل استفاده از x برای نامگذاری یک متغیر خیلی راحت و لذتبخش به حساب میاد. اما درس بزرگ رو زمانی میگیریم که میخوایم ببینیم این کد چهجوری اضافه شده و چه چیزی رو تغییر داده. نسبت دادن یک عنوان به یک کامیت دلایل و فلسفههایی داره و طبیعتاً استفاده از چیزهایی fix bug اون رو زیر سوال میبره. برای مثال وقتی بعد از ۳ ماه توی تاریخچه کامیتها نگاه میکنیم و میبینیم fix bug، از خودمون خواهیم پرسید که «چه باگی؟ کدوم قسمت؟ چرا اتفاق افتاد و چطوری برطرف شد؟» و به ناچار باید تک تک کامیتها رو باز کنیم و تغییرات فایلها رو نگاه کنیم تا ببینیم دقیقاً توی اون کامیت چه اتفاقی افتاده.
