رده:Git
Git
Git یه سیستم کنترل نسخه (Version Control System) هست که بهت اجازه میده تاریخچهی تغییرات فایلها و کدهات رو ذخیره کنی، به نسخههای قبلی برگردی، و با چند نفر همزمان روی یه پروژه کار کنی بدون اینکه کارها رو خراب کنید.
مفاهیم پایه | Basic Concepts
- Repository (Repo): پوشهای که Git توش تاریخچهی تغییرات رو ذخیره میکنه.
- Commit: یه "عکس لحظهای" (snapshot) از وضعیت فایلها در یه لحظه خاص، همراه با یه پیام توضیحی.
- Branch: یه مسیر جدا برای توسعه، که بهت اجازه میده بدون تأثیر روی نسخهی اصلی، تغییرات بدی.
- Merge: ترکیب کردن تغییرات دو Branch با هم.
- Remote: نسخهای از Repo که روی یه سرور دیگه (مثل GitHub) قرار داره.
- Working Directory: فایلهای واقعی روی سیستم تو.
- Staging Area (Index): جایی که تغییرات رو قبل از Commit کردن آماده میکنی.
راهاندازی اولیه | Initial Setup
<syntaxhighlight lang="bash"> git config --global user.name "نام شما" git config --global user.email "you@example.com" </syntaxhighlight>
شروع یه پروژه | Starting a Project
<syntaxhighlight lang="bash"> git init # ساخت یه Repo جدید در پوشه فعلی git clone <url> # کپی کردن یه Repo از یه آدرس ریموت </syntaxhighlight>
چرخهی اصلی کار | Basic Workflow
<syntaxhighlight lang="bash"> git status # دیدن وضعیت فعلی فایلها git add <file> # اضافه کردن فایل به Staging Area git add . # اضافه کردن همه فایلهای تغییر یافته git commit -m "پیام توضیحی" # ثبت تغییرات git log # دیدن تاریخچه Commit ها </syntaxhighlight>
کار با Branch
<syntaxhighlight lang="bash"> git branch # لیست Branch ها git branch new-feature # ساخت Branch جدید git checkout new-feature # رفتن به یه Branch git checkout -b new-feature # ساخت و رفتن همزمان git switch new-feature # روش جدیدتر برای جابجایی بین Branch ها git merge new-feature # ادغام یه Branch با Branch فعلی git branch -d new-feature # حذف یه Branch </syntaxhighlight>
کار با Remote (مثل GitHub)
<syntaxhighlight lang="bash"> git remote add origin <url> # اضافه کردن یه ریموت git push origin main # ارسال تغییرات به ریموت git pull origin main # دریافت و ادغام تغییرات از ریموت git fetch # فقط دریافت تغییرات بدون ادغام </syntaxhighlight>
برگشت به عقب و اصلاح اشتباهات
<syntaxhighlight lang="bash"> git checkout -- <file> # لغو تغییرات یه فایل (قبل از add) git reset <file> # خارج کردن فایل از Staging Area git reset --hard HEAD~1 # حذف کامل آخرین Commit (با احتیاط!) git revert <commit-hash> # ساخت یه Commit جدید که تغییرات یه Commit قبلی رو خنثی میکنه </syntaxhighlight>
فایل .gitignore
فایلی که بهش میگی Git کدوم فایلها/پوشهها رو نادیده بگیره (مثل node_modules، فایلهای موقت، تنظیمات شخصی).
<syntaxhighlight lang="text"> node_modules/ .env
- .log
</syntaxhighlight>
اصطلاحات پرکاربرد دیگر
- HEAD: اشارهگر به Commit یا Branch فعلی.
- Stash: ذخیرهی موقت تغییرات ناتموم بدون Commit کردن (
git stashوgit stash pop). - Conflict: وقتی دو Branch تغییرات متناقض دارن و Git نمیتونه خودکار Merge کنه.
- Fork: کپی کردن یه Repo کامل به اکانت خودت روی GitHub (نه دستور Git، بلکه یه قابلیت پلتفرم).
- Pull Request (PR): درخواست برای ادغام تغییرات یه Fork/Branch به پروژه اصلی، معمولاً روی GitHub.