استفاده از گیت بی‌سکت برای یافتن commit مشکل‌ساز

پیش‌نمایش دستور

            

استفاده

git bisect [گزینه‌ها] [شروع commit] [bad commit]

مثال‌ها

git bisect start           # Start bisecting
git bisect bad     # Mark the bad commit
git bisect good    # Mark the good commit
git bisect reset           # Reset bisecting

دقیقاً چه می‌کند؟

دستور git bisect یک ابزار قدرتمند است که به شما کمک می‌کند commit‌ای که یک باگ را وارد کرده شناسایی کنید. این دستور یک جستجوی دودویی در تاریخچه commits انجام می‌دهد و به شما این امکان را می‌دهد که سریعاً commit مشکل‌ساز را شناسایی کنید. با علامت‌گذاری یک commit به عنوان 'خوب' (جایی که باگ وجود ندارد) و دیگری به عنوان گبدگ (جایی که باگ وجود دارد)، گیت شروع به جستجو می‌کند تا commit مشکل‌ساز را شناسایی کند.

موارد کاربرد رایج

  • شناسایی commit‌ای که یک باگ را در پروژه شما وارد کرده است.
  • یافتن تغییرات دقیقاً باعث ایجاد یک بازگشت به وضعیت قبلی شده است.
  • عیب‌یابی مشکلات در یک کدبیس بزرگ از طریق ایزوله کردن commits مشکل‌ساز.

بهترین شیوه‌ها

  • ابتدا یک commit به عنوان 'خوب' (یک نسخه شناخته شده که بدون مشکل است) و یک commit به عنوان 'بد' (جایی که مشکل مشاهده می‌شود) علامت‌گذاری کنید.
  • از دستور git bisect reset برای بازنشانی عملیات بی‌سکت پس از شناسایی commit مشکل‌ساز استفاده کنید.
  • اطمینان حاصل کنید که آزمایش‌ها یا بررسی‌های شما در طول فرایند bisect به درستی کار می‌کنند تا وضعیت هر commit را تأیید کنید.

محدودیت‌ها

  • نیاز به یک commit خوب برای شروع فرایند bisect دارید.
  • اگر تاریخچه commits شما بزرگ باشد و باید وضعیت کد را به صورت دستی برای هر commit بررسی کنید، ممکن است زمان‌بر باشد.

اشتباهات رایج

  • علامت‌گذاری اشتباه یک commit به عنوان 'خوب' یا 'بد'، که می‌تواند منجر به نتایج نادرست شود.
  • فراموش کردن بازنشانی جلسه bisect پس از اتمام جستجو، که باعث سردرگمی در دستورات بعدی خواهد شد.

نمای کلی

دستور git bisect یک ابزار بسیار مفید زمانی است که نیاز دارید commit‌ای که باعث ایجاد مشکل در کد شما شده است را ایزوله کنید.با استفاده از جستجوی دودویی، می‌تواند زمان لازم برای یافتن یک باگ را به طور چشمگیری کاهش دهد.پس از پیدا کردن commit مشکل‌ساز، می‌توانید اقدامات لازم برای اصلاح مشکل یا بررسی بیشتر آن را انجام دهید.