بحث رده:Git: تفاوت میان نسخه‌ها

از shakiba
پرش به ناوبری پرش به جستجو
صفحه‌ای تازه حاوی «== Git == Category:Git Git یه سیستم '''کنترل نسخه (Version Control System)''' هست که بهت اجازه میده تاریخچه‌ی تغییرات فایل‌ها و کدهات رو ذخیره کنی، به نسخه‌های قبلی برگردی، و با چند نفر همزمان روی یه پروژه کار کنی بدون اینکه کارها رو خراب کنید. === مفاهیم پایه | Basic Co...» ایجاد کرد
 
صفحه را خالی کرد
برچسب: خالی کردن
 
خط ۱: خط ۱:
== Git ==
[[Category: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 کردن (<code>git stash</code> و <code>git stash pop</code>).
* '''Conflict''': وقتی دو Branch تغییرات متناقض دارن و Git نمی‌تونه خودکار Merge کنه.
* '''Fork''': کپی کردن یه Repo کامل به اکانت خودت روی GitHub (نه دستور Git، بلکه یه قابلیت پلتفرم).
* '''Pull Request (PR)''': درخواست برای ادغام تغییرات یه Fork/Branch به پروژه اصلی، معمولاً روی GitHub.
=== منابع بیشتر | Further Reading ===
* [https://git-scm.com/doc مستندات رسمی Git]
* [https://learngitbranching.js.org/ آموزش تعاملی Git Branching]

نسخهٔ کنونی تا ۶ سپتامبر ۲۰۲۶، ساعت ۰۶:۰۳