مفاهیم پایه ای Git و دستورات عملی و کاربردی به زبان ساده

git
git

مفاهیم پایه‌ای گیت (Git)

گیت یک سیستم کنترل نسخه توزیع‌شده (Distributed Version Control System) است که برای مدیریت کدها و پروژه‌ها استفاده می‌شود. با استفاده از گیت، می‌توانید تغییرات پروژه را پیگیری کنید، نسخه‌های مختلف آن را مدیریت کنید و به راحتی با تیم‌های دیگر همکاری کنید.

۱. سیستم کنترل نسخه (VCS) چیست؟

قبل از گیت، سیستم‌های مدیریت نسخه (مثل SVN) وجود داشتند که به شما اجازه می‌دادند نسخه‌های مختلف یک پروژه را ذخیره کنید. این کار باعث می‌شود که در صورت نیاز بتوانید به نسخه‌های قبلی برگردید.

🔹 گیت یک کنترل نسخه توزیع‌شده است، به این معنی که هر توسعه‌دهنده یک نسخه‌ی کامل از مخزن (Repository) را روی سیستم خودش دارد، برخلاف سیستم‌های متمرکز که فقط یک نسخه روی سرور نگهداری می‌شود.

۲. مخزن (Repository) چیست؟

مخزن گیت شامل کل تاریخچه تغییرات یک پروژه است. دو نوع مخزن داریم:

  1. مخزن محلی (Local Repository): این همان جایی است که شما روی کامپیوتر خودتان کار می‌کنید.
  2. مخزن راه دور (Remote Repository): نسخه‌ای از پروژه که روی سرور (مثلاً در گیت‌هاب، گیت‌لب یا بیت‌باکت) ذخیره می‌شود و برای همکاری با دیگران استفاده می‌شود.

۳. اجزای اصلی گیت

گیت دارای سه ناحیه (Area) اصلی است:

  1. Working Directory (دایرکتوری کاری): فایل‌های پروژه‌ای که در حال ویرایش آن‌ها هستید.
  2. Staging Area (مرحله‌بندی): تغییراتی که آماده ذخیره‌سازی (Commit) هستند.
  3. Repository (مخزن): جایی که تغییرات دائمی ذخیره می‌شوند.

فرایند کلی کار در گیت:

  1. تغییر فایل‌ها در دایرکتوری کاری
  2. اضافه کردن تغییرات به Staging Area با git add
  3. ذخیره تغییرات در Repository با git commit
  4. ارسال تغییرات به Remote Repository با git push

۴. نصب و راه‌اندازی گیت

🔹 برای نصب گیت:
📌 ویندوز: از سایت رسمی گیت دانلود و نصب کنید.
📌 لینوکس: دستور زیر را اجرا کنید:

sudo apt install git # برای اوبونتو و دبیان

sudo yum install git # برای فدورا و سنت‌اواس

مک: با استفاده از Homebrew:

🔹 تنظیم اولیه گیت:

پس از نصب، نام و ایمیل خود را تنظیم کنید:

git config --global user.name "نام شما"

git config --global user.email "ایمیل شما"

برای بررسی تنظیمات گیت:

git config --list

دستورات پایه‌ای گیت:

۱. ایجاد و مدیریت مخزن گیت

برای شروع یک پروژه با گیت، ابتدا باید یک مخزن گیت ایجاد کنید:

ایجاد مخزن جدید در یک پوشه:

اگر پروژه‌ای دارید که هنوز تحت گیت نیست، می‌تونید این دستور رو اجرا کنید:

git init

این دستور یک پوشه .git/ ایجاد می‌کنه که تمام تاریخچه و تنظیمات گیت داخلش ذخیره می‌شه.

کلون کردن (دریافت نسخه‌ای از مخزن راه دور):

اگر پروژه‌ای در گیت‌هاب یا گیت‌لب هست و می‌خواهید نسخه‌ای از اون رو روی سیستم خودتون بیارید:

git clone URL

مثال:

git clone https://github.com/username/repository.git

۲. بررسی وضعیت مخزن

📌 دیدن وضعیت تغییرات فایل‌ها:

git status

✅ این دستور بهتون نشون می‌ده که کدوم فایل‌ها تغییر کردن یا هنوز به مرحله‌ی commit اضافه نشدن.

۳. اضافه کردن تغییرات به Staging Area

📌 اضافه کردن یک فایل مشخص:

git add filename

📌 اضافه کردن همه‌ی تغییرات:

git add .

✅ این دستور همه‌ی فایل‌های تغییرکرده رو به Staging Area اضافه می‌کنه.

۴. ذخیره تغییرات (Commit)

📌 ثبت تغییرات با پیام توضیحی:

git commit -m "توضیح کوتاه درباره تغییرات"

مثال:

git commit -m "افزودن صفحه اصلی سایت"

✅ حالا تغییراتتون در مخزن محلی ذخیره شده و می‌تونید بعداً اون‌ها رو به مخزن راه دور بفرستید.

۵. ارسال تغییرات به مخزن راه دور (Push)

git push origin main

✅ این دستور تغییراتتون رو به شاخه‌ی main در مخزن راه دور می‌فرسته.

📌 اگر اولین بار push انجام می‌دهید، این دستور رو بزنید:

git push -u origin main

✅ این باعث می‌شه که main به عنوان شاخه‌ی پیش‌فرض تنظیم بشه.

۶. دریافت تغییرات از مخزن راه دور (Pull & Fetch)

📌 دریافت آخرین تغییرات از مخزن راه دور:

git pull origin main

✅ این دستور تغییرات جدیدی که دیگران روی مخزن راه دور اعمال کردن رو روی مخزن محلی اعمال می‌کنه.

📌 فقط دریافت تغییرات بدون ادغام:

git fetch origin

✅ این دستور فقط تغییرات رو دانلود می‌کنه ولی اون‌ها رو در مخزن محلی ادغام (merge) نمی‌کنه.

۷. مشاهده تاریخچه تغییرات (Log)

📌 نمایش لاگ تغییرات:

git log

📌 مشاهده لاگ به صورت خلاصه:

git log --oneline --graph --all

۸. ایجاد و کار با شاخه‌ها (Branches)

📌 ایجاد یک شاخه‌ی جدید:

git branch new-branch

📌 تغییر به شاخه‌ی دیگر:

git checkout new-branch

📌 ایجاد و تغییر هم‌زمان به شاخه‌ی جدید:

git checkout -b new-branch

📌 ادغام شاخه در main:

git merge new-branch

۹. برگرداندن تغییرات (Undo Changes)

📌 لغو تغییرات در یک فایل (برگشت به آخرین commit):

git checkout -- filename

📌 برگشت به یک commit قبلی:

git reset --hard commit-id

📌 برگشت فقط به حالت Staging (بدون حذف تغییرات فایل‌ها):

git reset --soft commit-id

تا اینجا با مفاهیم پایه ای گیت آشنا شدید، ان شاءالله در پست بعدی، با دستورات پیشرفته و مدیریت پروژه ، آشنا خواهید شد.