10 دستور کاربردی Git که باید همین امروز یاد بگیرید!

10 دستور کاربردی Git که باید همین امروز یاد بگیرید!

اگر برنامه‌نویس هستید یا به دنیای توسعه نرم‌افزار علاقه دارید، احتمالاً با ابزار Git آشنا هستید. تا به حال از تمامی امکانات و دستورات کاربردی آن استفاده کرده‌اید؟

Git به‌عنوان یکی از مهم‌ترین ابزارها در جریان کاری توسعه‌دهندگان، شامل دستورات متعددی است که حتی برنامه‌نویسان حرفه‌ای نیز ممکن است با برخی از آن‌ها آشنا نباشند. در این مقاله قصد داریم شما را با 10 دستور مفید و کاربردی Git آشنا کنیم که می‌توانند سرعت و کیفیت کار شما را به طرز چشم‌گیری افزایش دهند.

چرا باید از Git استفاده کنیم؟

پیش از بررسی دستورات، بیایید نگاهی به چالش‌هایی بیندازیم که در نبود Git ممکن است با آن‌ها روبرو شویم:

  1. مدیریت دستی نسخه‌ها: بدون Git، ذخیره نسخه‌های مختلف کد به صورت دستی انجام می‌شود که باعث سردرگمی و خطاهای زیاد خواهد شد.

  2. از دست دادن تغییرات: اگر تغییرات ناخواسته بازنویسی شوند، امکان بازگرداندن آن‌ها بدون Git وجود ندارد.

  3. عدم همکاری مؤثر: همکاری روی یک پروژه تیمی بدون ابزاری مانند Git، منجر به تداخل‌ها و ایجاد conflict در کد می‌شود.

  4. نبود امکان ردیابی تغییرات: بدون Git، نمی‌توانید مشخص کنید چه کسی و چه زمانی یک خط از کد را تغییر داده است.

  5. چالش در مدیریت branchها: برای افزودن ویژگی‌های جدید یا رفع باگ‌ها، نبود Git کار را دشوار و پرخطا می‌کند.

  6. مدیریت مخازن بزرگ (Monorepos): مدیریت پروژه‌های بزرگ بدون Git تقریباً غیرممکن است.

  7. عدم امکان بازگشت به نسخه‌های قبلی: اگر مشکلی در تغییرات ایجاد شود، بازگشت به نسخه‌های قبل بسیار دشوار خواهد بود.

10 دستور کاربردی Git

1. git switch – تغییر branch‌ها به شکل ساده و امن

ویژگی: این دستور برای تغییر branchها به روشی ساده‌تر و امن‌تر از دستور قدیمی git checkout طراحی شده است.

پیش از نسخه 2.23 Git، برای تغییر branchها از دستور git checkout استفاده می‌شد. اما این دستور وظایف متعددی را انجام می‌داد که گاهی پیچیدگی ایجاد می‌کرد.

از نسخه 2.23 به بعد، دستور git switch معرفی شد که به‌طور خاص برای مدیریت branchها طراحی شده است:

git switch feature-branch

برای ایجاد و تغییر به یک branch جدید:

git switch -c new-branch

این دستور ساده‌تر و امن‌تر از git checkout است و احتمال بازنویسی ناخواسته فایل‌ها را کاهش می‌دهد.

2. git restore – بازگرداندن تغییرات با امنیت بیشتر

ویژگی: این دستور به شما امکان بازگردانی تغییرات در فایل‌ها یا ناحیه staging را به روشی امن و ساده می‌دهد.

دستور git restore که از نسخه 2.23 به بعد معرفی شد، برای بازگردانی تغییرات در فایل‌ها و دایرکتوری‌ها استفاده می‌شود. این دستور جایگزینی ساده و امن برای git checkout و git reset در این زمینه است:

# بازگرداندن تغییرات در فایل
git restore main.js

# حذف تغییرات از ناحیه staging
git restore --staged main.js

3. git maintenance – بهبود سلامت مخزن به‌صورت خودکار

ویژگی: این دستور وظایف تعمیر و نگهداری مخزن را به‌صورت خودکار انجام می‌دهد و از کاهش سرعت مخزن جلوگیری می‌کند.

با رشد مخازن، ممکن است پرفورمنس آن‌ها کاهش یابد. از نسخه 2.29 به بعد، دستور git maintenance معرفی شد تا وظایف تعمیر و نگهداری مخزن به‌صورت خودکار انجام شود:

git maintenance start

برای اجرای دستی وظایف:

git maintenance run

4. git sparse-checkout – مدیریت مؤثر مخازن بزرگ

ویژگی: این دستور به شما امکان می‌دهد فقط فایل‌ها یا پوشه‌های موردنیاز را از مخزن کلون کنید و فضای کمتری استفاده کنید.

برای مخازن بزرگ (monorepos)، دستور git sparse-checkout امکان دریافت فقط بخش‌های مورد نیاز را فراهم می‌کند. این قابلیت از نسخه 2.25 به بعد در دسترس است:

# فعال‌سازی sparse-checkout
git sparse-checkout init

# مشخص کردن پوشه‌های مورد نظر
git sparse-checkout set folder1/ folder2/

5. git log --remerge-diff – درک بهتر از تغییرات در merge‌ها

ویژگی: این دستور تغییرات دقیق در commitهای merge را نمایش می‌دهد و برای رفع مشکلات merge بسیار کاربردی است.

commitهای merge معمولاً تغییرات خاصی را نشان نمی‌دهند. دستور git log --remerge-diff که از نسخه 2.35 معرفی شد، تغییرات دقیق ناشی از merge را نمایش می‌دهد:

git log --remerge-diff

6. git blame --ignore-rev – نادیده گرفتن commitهای غیرمفید

ویژگی: این دستور commitهایی که فقط برای تغییر قالب‌بندی استفاده شده‌اند را از گزارش blame حذف می‌کند.

در پروژه‌هایی که commitهای مربوط به تغییر قالب‌بندی زیاد است، می‌توانید با استفاده از --ignore-rev این commitها را نادیده بگیرید:

git blame --ignore-rev commit-hash

7. git range-diff – مقایسه تغییرات بین بازه‌های commit

ویژگی: این دستور به شما امکان می‌دهد تغییرات بین دو بازه commit را به‌صورت دقیق مقایسه کنید.

برای مقایسه دو بازه commit و بررسی تغییرات:

git range-diff base1 base2

8. git worktree – کار با چند branch به‌طور هم‌زمان

ویژگی: این دستور به شما امکان می‌دهد روی چندین branch به‌صورت هم‌زمان و بدون تغییر branch اصلی کار کنید.

اگر نیاز به کار روی چند branch به‌صورت هم‌زمان دارید، می‌توانید از git worktree استفاده کنید:

# ایجاد یک worktree جدید
git worktree add ../feature-branch feature-branch

9. git rebase --update-refs – همگام‌سازی references هنگام rebase

ویژگی: این دستور به‌صورت خودکار مراجع مرتبط را در هنگام rebase به‌روزرسانی می‌کند تا تاریخچه مخزن هماهنگ بماند.

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

git rebase --update-refs

10. git commit --fixup و git rebase --autosquash – مدیریت ساده‌تر commitها

ویژگی: این دستورات به شما امکان می‌دهند commitهای اصلاحی ایجاد کرده و به‌صورت خودکار آن‌ها را در تاریخچه ادغام کنید.

برای ایجاد commitهای مرتبط با commitهای قبلی و ادغام خودکار آن‌ها:

# ایجاد یک fixup commit
git commit --fixup=<commit-hash>

# ادغام خودکار در زمان rebase
git rebase -i --autosquash <base-branch>

نتیجه‌گیری

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

معرفی دوره رایگان Git و Github در کدیاد

اگر شما هم یک برنامه‌نویس هستید یا به تازگی وارد دنیای برنامه‌نویسی شده‌اید، حتماً با اهمیت Git آشنا هستید. گیت به عنوان یکی از ابزارهای کلیدی در مدیریت نسخه و همکاری تیمی در پروژه‌های برنامه‌نویسی، مهارتی است که هر برنامه‌نویس باید آن را بلد باشد.

در دوره رایگان آموزش Git و Github کدیاد، از مفاهیم ابتدایی تا تکنیک‌های پیشرفته را یاد خواهید گرفت. این دوره به شما کمک می‌کند تا به سرعت بتوانید پروژه‌های خود را مدیریت کرده و در تیم‌های برنامه‌نویسی حرفه‌ای مشارکت کنید.

از ویژگی‌های دوره می‌توان به موارد زیر اشاره کرد:

  • آموزش کامل و رایگان از مقدماتی تا پیشرفته
  • تمرین‌های عملی برای درک بهتر مفاهیم
  • معرفی بهترین شیوه‌ها برای استفاده بهینه از گیت

گیت و ارتباط آن با کدنویسی تمیز

یکی از نکات مهم در مدیریت پروژه‌ها با گیت، رعایت اصول کدنویسی تمیز (Clean Code) است. یک مخزن با کدهای ساختاریافته و تمیز، نه تنها خوانایی پروژه را بالا می‌برد، بلکه همکاری با دیگر اعضای تیم را نیز ساده‌تر می‌کند. در کدیاد آموزش رایگان Clean Code نیز آماده کردیم، که نحوه کدنویسی تمیز را یاد بگیرید و پروژه‌های استانداردی داشته باشید.