Mojtaba Pourkhanlar
About meProjectsBlog

  • 👤About me
  • 🧰Projects
  • ✍️Blog

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 --amend

کار با 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 --soft <commit>

  • برمی‌گردی و کل تغییرات رو حذف می‌کنی (احتیاطاً قبلش قهوه‌ت رو بخور ).
git reset --hard <commit>

  • فقط یه کامیت خاص رو برمی‌گردونه و خودش یه کامیت جدید می‌سازه؛ امن‌تر از 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>