تاریخچه، تفاوتها و برگشت از اشتباه
با diff و log کار کنی و بدانی restore، revert و reset چه فرقی دارند.
14 دقیقه مطالعه · 4 سؤال تمرینی · Git و GitHub برای شروع کار تیمی
دیدن تغییرها
git diff # تغییرات هنوز staged نشده
git diff --staged # تغییرات staged
git log --oneline --graph --all # نمای گرافیکی تاریخچه
git show <commit> # جزئیات یک commit
برگشت از اشتباه بسته به اینکه کار کجاست فرق میکند:
| وضعیت | دستور |
|---|---|
| تغییر هنوز commit نشده و میخواهید دور بریزید | git restore file |
| فایل را اشتباهی add کردید | git restore --staged file |
| commit اشتباه را با ثبت یک commit معکوس خنثی کنید (امن برای تاریخچهی مشترک) | git revert <commit> |
| آخرین commit محلی را بردارید ولی تغییرات بماند | git reset --soft HEAD~1 |
| آخرین commit محلی و تغییراتش را کاملاً دور بریزید (خطرناک) | git reset --hard HEAD~1 |
قاعدهی طلایی: روی commitهایی که قبلاً به دیگران push کردهاید، تاریخچه را بازنویسی نکنید (reset/rebase)؛ از revert استفاده کنید.