جمعه, 06 مرداد 1402 10:03

بازگشتن به چند کامیت قبل در گیت و تفاوت بین git revert و git reset --hard

شاید سوال شما این باشه که چگونه در گیت به چند کامیت قبل برگردیم. که در جواب باید بگم با دو دستور میشه به کامیت های قبلی برگشت: git revert <commit> و git reset --hard <commit> که در اینجا تفاوت های کلیدی بین git revert و git reset --hard در گیت آمده است:

دستور git revert:

  • یک commit جدید ایجاد می کند که تغییرات ایجاد شده توسط commit قبلی را لغو می کند. commit قبلی بخشی از تاریخچه پروژه باقی مانده است.
  • گزینه ایمن تر به دلیل اینکه تاریخچه پروژه را بازنویسی نمی کند. commitهای دیگر توسعه‌دهندگان حفظ می‌شود.
  • کاربرد: git revert <commit>

دستور git reset --hard:

  • با حرکت دادن HEAD و نشانگر شاخه فعلی به commit مشخص شده، تاریخچه پروژه را بازنشانی (ریست) می‌کند.
  • تاریخچه پروژه را با کنار گذاشتن commit های پس از commit مشخص شده بازنویسی می‌کند.
  • اگر commit ها پس از بازنویسی به زور تحت فشار قرار گیرند، می تواند برای توسعه دهندگان دیگر مشکل ایجاد کند.
  • کاربرد: git reset --hard <commit>

به طور خلاصه:

git revert یک commit جدید اضافه می‌کند که تغییرات را برمی‌گرداند. پس تاریخچه پروژه حفظ می‌شود.
git reset --Hard erases با حرکت دادن اشاره‌گر HEAD و شاخه انجام می‌شود. پس تاریخچه پروژه بازنویسی می‌شود.

بنابراین git revert گزینه‌ای ایمن تر است چون تاریخچه به اشتراک گذاشته شده را بازنویسی نمی‌کند و git reset --hard مخرب تر است چون تاریخچه پروژه را بازنویسی می‌کند.

 

دیدگاه شما