Git Commands Overview
راهاندازی و شروع پروژه
- ایجاد یک مخزن (repository) جدید در پوشه فعلی. اولین قدم برای gitی شدن پروژهاست!
git init
- کپی کردن یک ریپو از سرور (مثل GitHub) در سیستم محلی. معمولاً اولین کاری که در پروژه تیمی میکنی.
git clone <url>
وضعیت و بررسی تغییرات
- نمایش فایلهای تغییرکرده، اضافه نشده یا آماده کامیت. هر وقت شک داشتی “الان چی شده؟” این رو بزن!
git status
- نشون میده دقیقاً چه تغییراتی تو فایلها انجام دادی قبل از کامیت. برای دیدن تفاوت خط به خط عالیه.
git diff
- لیست کامیتها رو میاره، با تاریخ و نویسنده. با --oneline خلاصهترش رو ببینی جذابتره.
git log
افزودن و کامیت کردن تغییرات
- فایل رو به stage area اضافه میکنی تا آماده کامیت بشه.
git add <file>
- همه تغییرات رو با یه تیر اضافه میکنی. مناسب وقتی مطمئنی همهچی اوکیه!
git add .
- ثبت نهایی تغییرات با یه پیام تو دل تاریخ پروژه. (لطفاً پیامهای معنیدار بذار، نه “fix something” )
git commit -m "message"
- ویرایش آخرین کامیت (مثلاً وقتی یادِت رفته یه فایل رو اضافه کنی یا پیام رو اصلاح کنی).
git commit
کار با Branchها — دنیای موازی توسعه
- همه شاخهها رو نشون میده، با ستاره کنار شاخه فعلی.
git branch
- یک شاخه جدید میسازی برای فیچر جدید یا باگفیکس.
git branch <branch-name>
- سوئیچ به یه شاخه دیگه (از دنیای فعلی به دنیای دیگر توسعه).
git checkout <branch>
- ساخت + سوئیچ همزمان به شاخه جدید (برای آدمهای عجول مثل من ).
git checkout -b <new-branch-name> <current-branch>
- تغییرات آن شاخه را با شاخه فعلی ادغام میکنی. اساس کار تیمی!
git merge <branch>
- مثل merge ولی مرتبتر و تمیزتر برای تاریخ کامیتها. تو مصاحبه زیاد درباره فرقش میپرسن!
git rebase <branch>
ارتباط با ریموت (GitHub، GitLab و دوستان)
- لیست ریموتهای مرتبط با پروژه رو نشون میده.
git remote -v
- ارسال تغییرات شاخه فعلی به سرور. چیزی که بعد از یه کامیت خوشگل انجام میدی.
git push origin <branch>
- دریافت تغییرات از سرور و ادغام با شاخه local — همیشه قبل از شروع روز کاری بزنش
git pull origin <branch>
- فقط تغییرات رو میاره بدون ادغام. برای بررسی قبل از pull عالیه.
git fetch
مدیریت کامیتها و تاریخچه
- برمیگردی به یه کامیت قبلی ولی فایلها رو حفظ میکنی. برای اصلاح کامیتها خیلی کاربردیه.
git reset
- برمیگردی و کل تغییرات رو حذف میکنی (احتیاطاً قبلش قهوهت رو بخور ).
git reset
- فقط یه کامیت خاص رو برمیگردونه و خودش یه کامیت جدید میسازه؛ امنتر از reset برای کار تیمی.
git revert <commit>
استش و بازی با تغییرات موقت
- تغییرات رو موقت ذخیره میکنی (بدون کامیت)، برای وقتی میخوای بری شاخه دیگه کار فوری کنی.
git stash
- تغییرات رو برمیگردونه و آخرین استش رو حذف میکنه
git stash pop
- لیست استشهای ذخیره شده. مفید وقتی ده تاش ساختی و یادت رفته اسمکدوم چی بود .
git stash list
- تغییرات رو برمیگردونه ولی استش باقی میمونه
git stash apply
بررسی و دیباگ کار تیمی
- نشون میده هر خط آخرین بار توسط کی تغییر کرده؛ برای مواقعی که میخوای بدونی “کی این فاجعه رو نوشت؟”
git blame <file>
- جزئیات کامل یه کامیت رو نشون میده؛ دقیق و مفصل.
git show <commit>
- برای علامتگذاری نسخهها، مثلاً v1.0.0. معمولاً در releaseها استفاده میشه.
git tag <name>