ویرگول
ورودثبت نام
شایان کیان پور
شایان کیان پورمقالات در حوزه امنیت، DevOps و بازیسازی بصورت مرتب در این صفحه آپلود میشود ، این مقالات یا نوشته من هست یا بهترین اطلاعات جمع آوری شده . knpshayan@gmail.com
شایان کیان پور
شایان کیان پور
خواندن ۲ دقیقه·۶ ماه پیش

توضیح درباره Git، GitHub و GitLab

Git چیست؟

Git یک سیستم کنترل نسخه توزیع‌شده (Distributed Version Control System) است که توسط Linus Torvalds (خالق لینوکس) در سال 2005 توسعه داده شد.
هدف اصلی Git این است که توسعه‌دهندگان بتوانند تغییرات کد را مدیریت کنند، تاریخچه‌ی پروژه را ذخیره کنند، و به‌صورت گروهی روی یک کد کار کنند.

ویژگی‌های کلیدی Git:

  • 📜 ذخیره تاریخچه کامل پروژه

  • 🔄 شاخه‌سازی (Branching) و ادغام (Merging) ساده و قدرتمند

  • ⚡ سرعت بالا حتی در پروژه‌های بسیار بزرگ

  • 🛡️ سیستم توزیع‌شده → هر توسعه‌دهنده یک کپی کامل از ریپو (Repository) دارد

  • ✅ مدیریت بهتر در تیم‌های بزرگ


Git چگونه کار می‌کند؟ ⚙️

Git تغییرات فایل‌ها را به‌صورت Snapshot (عکس لحظه‌ای) ذخیره می‌کند، نه به‌صورت تغییرات خط‌به‌خط مثل SVN.

چرخه کاری Git:

  1. Working Directory → محلی که کد اصلی شماست.

  2. Staging Area (Index) → تغییرات انتخاب‌شده برای Commit.

  3. Repository (Local Repo) → محل ذخیره‌ی Commitهای شما روی سیستم محلی.

  4. Remote Repository → مخزن کد روی سرور (مثل GitHub یا GitLab).

مثال ساده:

# شروع پروژه جدید git init # اضافه کردن فایل به Stage git add file1.txt # ثبت تغییرات git commit -m "Added file1" # اتصال به ریپوی ریموت git remote add origin https://github.com/user/repo.git # ارسال تغییرات به سرور git push origin main

GitHub چیست؟ 🐙

GitHub یک سرویس مبتنی بر Git است که توسط Microsoft مدیریت می‌شود. این پلتفرم بیشتر به‌عنوان یک هاست برای پروژه‌های کد باز و خصوصی شناخته می‌شود.

قابلیت‌های مهم GitHub:

  • 📦 میزبانی رایگان و پولی مخزن کد

  • 👨‍👩‍👧 امکان همکاری تیمی (Pull Request, Issues)

  • ✅ GitHub Actions برای CI/CD

  • 📊 گرافیک و آمار پروژه

  • 🌎 بزرگ‌ترین جامعه توسعه‌دهندگان در دنیا

مثال: Pull Request در GitHub

  1. شما یک Fork از پروژه ایجاد می‌کنید.

  2. تغییرات خود را روی Branch جدید اعمال می‌کنید.

  3. یک Pull Request به پروژه اصلی می‌زنید.

  4. Maintainer پروژه تغییرات شما را بررسی و در صورت تأیید Merge می‌کند.


GitLab چیست؟ 🦊

GitLab هم مشابه GitHub یک پلتفرم مدیریت کد بر پایه Git است، اما ویژگی‌های متفاوتی دارد.

تفاوت اصلی GitLab:

  • 📌 GitLab یک نرم‌افزار متن‌باز است و می‌توانید آن را روی سرور خود نصب کنید.

  • 🚀 GitLab یک DevOps Platform کامل ارائه می‌دهد:

    • Git Repository

    • CI/CD قوی داخلی

    • Issue Tracking

    • Container Registry

    • Kubernetes Integration

مثال: CI/CD در GitLab

با فایل .gitlab-ci.yml می‌توان خط لوله (Pipeline) ساخت:

stages: - build - test - deploy build_job: stage: build script: - echo "Building the project..." test_job: stage: test script: - echo "Running tests..." deploy_job: stage: deploy script: - echo "Deploying application"

سناریوی واقعی (مثال کاربردی) 🛠️

فرض کنید شما روی یک پروژه وب‌سایت فروشگاهی کار می‌کنید.

  • 🔹 مرحله 1: مخزن Git را ایجاد می‌کنید و کد اصلی پروژه را Commit می‌کنید.

  • 🔹 مرحله 2: تیم شما Branch جداگانه برای هر فیچر (feature/login، feature/cart) می‌سازد.

  • 🔹 مرحله 3: بعد از تکمیل فیچر، Pull Request (در GitHub) یا Merge Request (در GitLab) ارسال می‌شود.

  • 🔹 مرحله 4: با CI/CD تست‌ها اجرا شده و در صورت موفقیت، کد روی سرور Production دیپلوی می‌شود.


جمع‌بندی 🎯

  • Git یک ابزار کنترل نسخه است.

  • GitHub یک سرویس هاستینگ کد با جامعه بزرگ توسعه‌دهندگان است.

  • GitLab یک پلتفرم DevOps کامل با امکان نصب روی سرور شخصی است.

🔑 اگر شما یک توسعه‌دهنده فردی یا استارتاپ کوچک هستید، GitHub انتخاب مناسب‌تری است.
🔑 اگر یک سازمان بزرگ با نیاز به کنترل کامل و CI/CD داخلی هستید، GitLab بهتر است.

ci cdgitتکنولوژی
۰
۰
شایان کیان پور
شایان کیان پور
مقالات در حوزه امنیت، DevOps و بازیسازی بصورت مرتب در این صفحه آپلود میشود ، این مقالات یا نوشته من هست یا بهترین اطلاعات جمع آوری شده . knpshayan@gmail.com
شاید از این پست‌ها خوشتان بیاید