‫امکانات انقلابی git

انقلابی‌ترین امکان git خاصیت distributed آن است. بعد از این قضیه دو دستور زیر به نظر من خیلی انقلابی می‌آیند:

۱- دستور git stash
فرض کنید در حال اعمال یک سری تغییرات دامنه دار در سورس برنامه هستید. فرض کنید تعداد زیادی فایل را modify کرده و تعدادی را هم اضافه یا حذف کرده‌اید. حالا وسط کار متوجه باگ یا ایرادی در سورس می‌شوید که ارتباطی با تغییرات اخیرتان ندارد ولی به هر صورت می‌خواهید هم این اشکال را حل کنید و هم این که commit این رفع باگ با commit تغییرات مورد ذکر یکی نباشد. حالا باید چه کار کرد؟ راه معمول این است که باگ مشاهده شده را در جایی یادداشت کرد و بعداً آن را اصلاح کرد، البته اگر تغییرات اخیرتان به آن وابسته نباشد. راه دیگر آن است که تغییرات اخیر را un-do کرده، باگ مورد نظر را رفع کرده و تغییرات اصلی را مجددا از نو شروع کنید.

به جای همه این کارها می‌توان از یکی از امکانات جالب git به نام stash استفاده کنید. stash تغییرات فعلی شما را به یک جای موقتی که خودش می‌داند منتقل کرده و INDEX را برای شما پاک می‌کند. حالا می‌توانید با خیال راحت باگ مورد نظر را رفع و commit نمایید. سپس با استفاده از stash تغییرات قبلی را به INDEX برگردانده و کار را از همانجا که قطع شده بود، شروع کنید بدون آن که چیزی را از دست داده باشید.

۲- دستور git grep
دستور grep دستور ساده‌ای است که می‌تواند عبارت خاصی را در فایل‌های موجود در source control گیت مورد جستجو قرار دهد. آنها که به search سورس در Visual Studio عادت دارند مطمئناً از git grep خیلی خوششان خواهد آمد.