## اصول اولیه گیت برای مبتدیان توسعه وب 👶 ## گیت چیست؟ 1. گیت یک سیستم کنترل نسخه توزیع‌شده است. 2. کل کد و تاریخچه آن در کامپیوتر هر توسعه‌دهنده موجود است، که امکان ایجاد شاخه‌ها و ادغام آسان را فراهم می‌کند. 3. از گیت به عنوان سیستم کنترل نسخه (VCS) برای ردیابی تغییرات در فایل‌های کامپیوتری استفاده می‌شود. * کنترل نسخه توزیع‌شده * هماهنگی کار بین چندین توسعه‌دهنده * چه کسی چه تغییراتی و در چه زمانی انجام داده است * امکان بازگشت به هر زمان * مخازن محلی و راه دور ## مفاهیم گیت * ردیابی تاریخچه کد * گرفتن "تصاویر فوری" از فایل‌های شما * شما تصمیم می‌گیرید چه زمانی یک تصویر فوری بگیرید با انجام یک "تعهد" * امکان بازدید از هر تصویر فوری در هر زمان * امکان مرحله‌بندی فایل‌ها قبل از تعهد ### تفاوت بین گیت و گیت‌هاب | گیت | گیت‌هاب | | ------- | ----------- | | گیت یک نرم‌افزار است | گیت‌هاب یک سرویس ابری است | | گیت به صورت محلی روی سیستم نصب می‌شود | گیت‌هاب روی وب میزبانی می‌شود | | گیت یک ابزار خط فرمان است | گیت‌هاب یک رابط کاربری گرافیکی است | | گیت توسط لینوکس نگهداری می‌شود | گیت‌هاب توسط مایکروسافت نگهداری می‌شود | | گیت بر کنترل نسخه و اشتراک‌گذاری کد تمرکز دارد | گیت‌هاب بر میزبانی متمرکز کد منبع تمرکز دارد | | گیت دارای مجوز متن‌باز است | گیت‌هاب شامل یک سطح رایگان و یک سطح پرداختی است | | گیت در سال 2005 منتشر شد | گیت‌هاب در سال 2008 منتشر شد | ## نصب گیت * لینوکس (دبیان) `$sudo apt-get install git` * لینوکس (فدورا) `$sudo yum install git` * [دانلود](http://git-scm.com/download/mac) برای مک * [دانلود](http://git-scm.com/download/win) برای ویندوز ### مراحل نصب: 1. 2. 3. 4. 5. 6. سپس ادامه دهید: Next > Next > Next > Install 7. ### پس از نصب، باید گیت را با استفاده از گیت بش تنظیم کنیم: 1. `git config --global user.name 'YourName'` 2. `git config --global user.email 'YourEmail'` ___ ## دستورات گیت ___ ### دریافت و ایجاد پروژه‌ها | دستور | توضیحات | | ------- | ----------- | | `git init` | یک مخزن گیت محلی را مقداردهی اولیه کنید | | `git clone ssh://git@github.com/[username]/[repository-name].git` | یک کپی محلی از یک مخزن راه دور ایجاد کنید | ### ثبت تغییرات اولیه | دستور | توضیحات | | ------- | ----------- | | `git status` | بررسی وضعیت | | `git add [file-name.txt]` | افزودن یک فایل به ناحیه مرحله‌بندی | | `git add -A` | افزودن تمام فایل‌های جدید و تغییر یافته به ناحیه مرحله‌بندی | | `git commit -m "[commit message]"` | ثبت تغییرات | | `git rm -r [file-name.txt]` | حذف یک فایل (یا پوشه) | | `git push` | ارسال به مخزن راه دور | | `git pull` | دریافت آخرین تغییرات از مخزن راه دور | ### شاخه‌بندی و ادغام | دستور | توضیحات | | ------- | ----------- | | `git branch` | لیست شاخه‌ها (ستاره نشان‌دهنده شاخه فعلی است) | | `git branch -a` | لیست تمام شاخه‌ها (محلی و راه دور) | | `git branch [branch name]` | ایجاد یک شاخه جدید | | `git branch -D [branch name]` | حذف یک شاخه | | `git push origin --delete [branch name]` | حذف یک شاخه راه دور | | `git checkout -b [branch name]` | ایجاد یک شاخه جدید و سوئیچ به آن | | `git checkout -b [branch name] origin/[branch name]` | کلون کردن یک شاخه راه دور و سوئیچ به آن | | `git branch -m [old branch name] [new branch name]` | تغییر نام یک شاخه محلی | | `git checkout [branch name]` | سوئیچ به یک شاخه | | `git checkout -` | سوئیچ به آخرین شاخه بررسی شده | | `git checkout -- [file-name.txt]` | لغو تغییرات یک فایل | | `git merge [branch name]` | ادغام یک شاخه به شاخه فعال | | `git merge [source branch] [target branch]` | ادغام یک شاخه به شاخه هدف | | `git stash` | ذخیره تغییرات در یک دایرکتوری کاری کثیف | | `git stash clear` | حذف تمام ورودی‌های ذخیره شده | ### اشتراک‌گذاری و به‌روزرسانی پروژه‌ها | دستور | توضیحات | | ------- | ----------- | | `git push origin [branch name]` | ارسال یک شاخه به مخزن راه دور | | `git push -u origin [branch name]` | ارسال تغییرات به مخزن راه دور (و به خاطر سپردن شاخه) | | `git push` | ارسال تغییرات به مخزن راه دور (شاخه به خاطر سپرده شده) | | `git push origin --delete [branch name]` | حذف یک شاخه راه دور | | `git pull` | به‌روزرسانی مخزن محلی به آخرین تعهد | | `git pull origin [branch name]` | دریافت تغییرات از مخزن راه دور | | `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | افزودن یک مخزن راه دور | | `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | تنظیم شاخه origin یک مخزن به SSH | ### بررسی و مقایسه | دستور | توضیحات | | ------- | ----------- | | `git log` | مشاهده تغییرات | | `git log --summary` | مشاهده تغییرات (به صورت جزئیات) | | `git log --oneline` | مشاهده تغییرات (به صورت خلاصه) | | `git diff [source branch] [target branch]` | پیش‌نمایش تغییرات قبل از ادغام | --- **سلب مسئولیت**: این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.