Git: تفاوت میان نسخه‌ها

از shakiba
پرش به ناوبری پرش به جستجو
صفحه‌ای تازه حاوی «= گیت (Git) = این صفحه یادداشت‌های مروری دربارهٔ کار با گیت است. هدف: یادگیری، مرور سریع و داشتن یک مرجع از دستورات و الگوهای پرکاربرد. == چرا گیت مهم است؟ == * سیستم نسخه‌ی توزیع‌شده * ذخیرهٔ تاریخچهٔ تغییرات * همکاری گروهی و بازگشت آسان به_states_ * ش...» ایجاد کرد
 
بدون خلاصۀ ویرایش
خط ۱: خط ۱:
= گیت (Git) =
این صفحه یادداشت‌های مروری دربارهٔ کار با گیت است.
هدف: یادگیری، مرور سریع و داشتن یک مرجع از دستورات و الگوهای پرکاربرد.
== چرا گیت مهم است؟ ==
* سیستم نسخه‌ی توزیع‌شده
* ذخیرهٔ تاریخچهٔ تغییرات
* همکاری گروهی و بازگشت آسان به_states_
* شاخه‌بندی و ترکیب تغییرات
* پایهٔ بسیاری از جریان‌های توسعه نرم‌افزار
== نصب و تنظیم اولیه ==
=== نصب ===
جهت نصب از مسیر رسمی یا مدیریت بستهٔ سیستم‌عامل استفاده کنید.
نسخهٔ نصب‌شده را این‌گونه چک کنید:
<syntaxhighlight lang="bash">
git --version
</syntaxhighlight>
=== تنظیمات اولیه کاربر ===
<syntaxhighlight lang="bash">
git config --global user.name "نام و نام خانوادگی"
git config --global user.email "email@example.com"
</syntaxhighlight>
=== مشاهده تنظیمات ===
<syntaxhighlight lang="bash">
git config --list
</syntaxhighlight>
== مفاهیم پایه ==
== مفاهیم پایه ==


* مخزن Repository: محل نگهداری پروژه و تاریخچه
* '''Commit''': یک نقطهٔ ذخیرهٔ دائمی در تاریخچهٔ پروژه، مثل عکس لحظه‌ای از وضعیت فایل‌ها.
* Commit: نقطه ذخیره در تاریخچه
* '''Branch (شاخه)''': یک مسیر جداگانه برای توسعه، بدون تأثیر روی نسخهٔ اصلی.
* Branch: خط توسعهٔ مستقل
* '''Merge''': ترکیب کردن تغییرات دو شاخه با هم.
* Merge / Rebase: ترکیب تغییرات بین شاخه‌ها
* '''Remote''': نسخه‌ای از مخزن که روی یک سرور (مثل GitHub) قرار دارد.
* Staging area: محل آماده‌سازی تغییرات قبل از Commit
* Remote: مخزن دورتر مثل سرویس میزبانی


== دستورات پرکاربرد ==
== دستورات پرکاربرد ==


=== شروع پروژه ===
=== شروع کار ===
 
{| class="wikitable" style="direction:rtl; width:100%;"
<syntaxhighlight lang="bash">
|-
git init
! توضیح !! دستور
git status
|-
</syntaxhighlight>
| ساخت یک مخزن جدید در پوشهٔ فعلی || <code style="direction:ltr; display:inline-block;">git init</code>
 
|-
=== افزودن و ثبت تغییرات ===
| کپی کردن یک مخزن از راه دور || <code style="direction:ltr; display:inline-block;">git clone [آدرس]</code>
 
|}
<syntaxhighlight lang="bash">
git add .
git commit -m "توضیح کوتاه از تغییرات"
</syntaxhighlight>
 
=== بررسی وضعیت و تاریخچه ===


<syntaxhighlight lang="bash">
=== ثبت تغییرات ===
git status
{| class="wikitable" style="direction:rtl; width:100%;"
git log
|-
git log --oneline
! توضیح !! دستور
</syntaxhighlight>
|-
| نمایش وضعیت فایل‌ها || <code style="direction:ltr; display:inline-block;">git status</code>
|-
| اضافه کردن فایل به staging area || <code style="direction:ltr; display:inline-block;">git add [نام فایل]</code>
|-
| اضافه کردن همهٔ فایل‌های تغییر یافته || <code style="direction:ltr; display:inline-block;">git add .</code>
|-
| ثبت یک commit با توضیح || <code style="direction:ltr; display:inline-block;">git commit -m "پیام"</code>
|}


=== کار با شاخه‌ها ===
=== کار با شاخه‌ها ===
{| class="wikitable" style="direction:rtl; width:100%;"
|-
! توضیح !! دستور
|-
| نمایش لیست شاخه‌ها || <code style="direction:ltr; display:inline-block;">git branch</code>
|-
| ساخت شاخهٔ جدید || <code style="direction:ltr; display:inline-block;">git branch [نام]</code>
|-
| رفتن به یک شاخه || <code style="direction:ltr; display:inline-block;">git checkout [نام]</code>
|-
| ساخت و رفتن به شاخهٔ جدید هم‌زمان || <code style="direction:ltr; display:inline-block;">git checkout -b [نام]</code>
|-
| ادغام یک شاخه با شاخهٔ فعلی || <code style="direction:ltr; display:inline-block;">git merge [نام شاخه]</code>
|}


<syntaxhighlight lang="bash">
=== کار با ریموت (GitHub و مشابه) ===
git branch
{| class="wikitable" style="direction:rtl; width:100%;"
git branch feature-x
|-
git switch feature-x
! توضیح !! دستور
git switch main
|-
</syntaxhighlight>
| اتصال به مخزن راه دور || <code style="direction:ltr; display:inline-block;">git remote add origin [آدرس]</code>
 
|-
=== کار با مخزن دورتر ===
| ارسال تغییرات به سرور || <code style="direction:ltr; display:inline-block;">git push origin [شاخه]</code>
 
|-
<syntaxhighlight lang="bash">
| دریافت تغییرات از سرور || <code style="direction:ltr; display:inline-block;">git pull origin [شاخه]</code>
git remote add origin <آدرس>
|}
git push -u origin main
git pull
git clone <آدرس>
</syntaxhighlight>
 
=== مقایسه تغییرات ===
 
<syntaxhighlight lang="bash">
git diff
git diff --staged
</syntaxhighlight>
 
== روند کاری ساده ==
 
۱. برای کار جدید یک شاخه جدید باز کنید.
۲. تغییرات را stage کنید.
۳. یک Commit با پیام مشخص بزنید.
۴. تغییرات را به مخزن دورتر بفرستید یا با تیم همگام شوید.
۵. در صورت نیاز، Merge یا Rebase را در شاخهٔ اصلی انجام دهید.
 
== عادات خوب ==
 
* پیام Commit واضح و کوتاه باشد.
* Commit‌های بزرگ را به قطعات کوچک‌تر بشکنید.
* قبل از Push، Status و Diff را چک کنید.
* به‌جای کار مستقیم روی شاخه اصلی، از شاخه‌های کار específica استفاده کنید.
 
== ادامه و ارتباط با صفحات دیگر ==
 
* [[:WordPress|آشنایی با وردپرس]]
* [[:CMD|خط فرمان و CMD]]
* [[:Prompt-Engineering|پرامپت‌نویسی]]
 
[[دسته‌بندی:یادگیری]]
[[دسته‌بندی:گیت]]

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

مفاهیم پایه

  • Commit: یک نقطهٔ ذخیرهٔ دائمی در تاریخچهٔ پروژه، مثل عکس لحظه‌ای از وضعیت فایل‌ها.
  • Branch (شاخه): یک مسیر جداگانه برای توسعه، بدون تأثیر روی نسخهٔ اصلی.
  • Merge: ترکیب کردن تغییرات دو شاخه با هم.
  • Remote: نسخه‌ای از مخزن که روی یک سرور (مثل GitHub) قرار دارد.

دستورات پرکاربرد

شروع کار

توضیح دستور
ساخت یک مخزن جدید در پوشهٔ فعلی git init
کپی کردن یک مخزن از راه دور git clone [آدرس]

ثبت تغییرات

توضیح دستور
نمایش وضعیت فایل‌ها git status
اضافه کردن فایل به staging area git add [نام فایل]
اضافه کردن همهٔ فایل‌های تغییر یافته git add .
ثبت یک commit با توضیح git commit -m "پیام"

کار با شاخه‌ها

توضیح دستور
نمایش لیست شاخه‌ها git branch
ساخت شاخهٔ جدید git branch [نام]
رفتن به یک شاخه git checkout [نام]
ساخت و رفتن به شاخهٔ جدید هم‌زمان git checkout -b [نام]
ادغام یک شاخه با شاخهٔ فعلی git merge [نام شاخه]

کار با ریموت (GitHub و مشابه)

توضیح دستور
اتصال به مخزن راه دور git remote add origin [آدرس]
ارسال تغییرات به سرور git push origin [شاخه]
دریافت تغییرات از سرور git pull origin [شاخه]