دستور 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 مخرب تر است چون تاریخچه پروژه را بازنویسی میکند.