برنامه نویسی و طراحی سایت

گیت هاب چیست؟ – از کاربرد تا نحوه استفاده Github

گیت هاب چیست؟ – از کاربرد تا نحوه استفاده Github

دنیای برنامه نویسی، به طور حیرت‌انگیزی وسیع و گسترده است و به لطف پیشرفت فناوری و همین‌طور کاربرد بسیار زیاد رشته علوم کامپیوتر در حوزه‌های دیگر، تعجب‌آور نیست که بسیاری از مسائلِ موجود در زمینه‌های گوناگون را، می‌توان با کد نویسی و ساخت نرم‌افزارهای مورد نیاز، حل کرد. با این حال، پرسشی که مطرح می‌شود این است که «بهترین راه برای نمایش و ارائه پروژه‌ برنامه نویسی و توسعه نرم افزار چیست». برخلاف سایر حوزه‌ها، ارائه مقاله‌ای تحقیقاتی یا پستِ وبلاگی، ممکن است برای شرح فعالیت‌هایی که در فرایند برنامه نویسیِ یک پروژه صورت گرفته است و همین‌طور ویژگی‌هایِ برنامه ساخته شده، کافی نباشد. بنابراین، نیاز به ابزاری پیشرفته‌تر برای مدیریت نسخه‌ها و سازماندهی پروژه وجود دارد. گیت هاب در واقع برای این منظور مطرح می‌شود. در این مطلب از مجله تم آف در پاسخ به این پرسش که «گیت هاب چیست»، این ابزار بسیار مفید را برای ارائه پروژه‌ها معرفی می‌کنیم.

فهرست مطالب این نوشته
مقدمات یادگیری گیت هاب چیست؟

سیستم کنترل نسخه چیست؟

کاربردهای سیستم کنترل نسخه چیست؟

مزیت های سیستم کنترل نسخه چیست؟

چه کسانی از کنترل نسخه استفاده می‌کنند؟

انواع سیستم های کنترل نسخه کدامند؟

سیستم کنترل نسخه متمرکز چیست؟

کنترل نسخه توزیع شده چیست؟

گیت چیست؟

ریپازیتوری Repository یا مخزن چیست؟

گیت هاب چه نوع ابزاری است؟

منظور از Commit یا کامیت کردن در گیت چیست؟

منظور از push در گیت چیست؟

منظور از Branch در گیت چیست؟

منظور از Merge در گیت چیست؟

منظور از Clone در گیت چیست؟

منظور از Fork در گیت چیست؟

گیت هاب چیست ؟

نصب گیت و گیت هاب در ویژوال استودیو کد چگونه است؟

مروری بر GitHub ،Git و VSCode

نصب Git روی کامپیوتر چگونه است؟

فعال سازی Git در VS Code چگونه است؟

ایجاد حساب در GitHub و ورود به آن چگونه است؟

پیکربندی ورود به گیت هاب چگونه است؟

مخزن در گیت هاب چیست؟

نحوه ساخت مخزن از طریق گیت هاب چگونه است؟

برگه تقلب ویژوال استودیو کد برای گیت هاب چیست ؟

شاخه در گیت هاب چیست؟

شاخه اصلی در گیت چیست ؟

عملیات مربوط به شاخه ها در گیت چیست ؟

دستور git branch در گیت چیست؟

دستور list branch در گیت چیست؟

دستور delete branch در گیت چیست؟

دستور switch branch در گیت چیست؟

دستور rename branch در گیت چیست؟

دستور merge branch در گیت چیست؟

روش ایجاد شاخه در مخزن گیت هاب چیست ؟

روش حذف شاخه در مخزن گیت هاب چیست ؟

Pull در گیت هاب چیست ؟

درخواست pull در گیت هاب چیست؟

چگونه به گیت هاب Commit کنیم؟

ذخیره کردن تغییرات چگونه انجام می‌شود؟

کامیت کردن تغییرات چگونه انجام می‌شود؟

push در گیت هاب چیست ؟

چگونه Commit را به گیت هاب Push کنیم؟

نحوه Push کردن کدها به گیت هاب با VSCode چگونه است؟

Fork در گیت هاب چیست ؟

Fork کردن مخزن چگونه است؟

کامیت کردن تغییر در fork چگونه است؟

Clone در گیت چیست ؟

چگونه مخزن خود را در ویژوال استدیو کد Clone کنیم؟

راه اندازی فایل Gitignore چگونه است؟

Fetch در گیت هاب چیست ؟

چگونه مخزن گیت را Fetch کنیم؟

تفاوت بین git fetch و git pull در گیت هاب چیست ؟

Cherry Picking در گیت چیست؟

موارد استفاده از cherry-pick کدام اند؟

Checkout در گیت چیست؟

عملیات موجود در چک‌اوت کدامند؟

Staging در گیت هاب چیست ؟

Staging در ترمینال و VSCode چگونه انجام می شود؟

چگونه تغییرات خود را Stage کنیم؟

راه اندازی مخزن گیت را به وسیله «Git Init» چگونه است؟

روش افزودن فایل به staging در گیت هاب چیست‌ ؟

روش نمایش فایل‌های Stage شده با دستور Git Status در گیت هاب چیست ؟

چه تغییراتی در فایل رخ داده است؟

کامیت کردن فایل‌های Stage شده چگونه است؟

سوالات متداول

چرا از گیت هاب استفاده می‌کنیم؟

آیا گیت هاب برای افراد تازه کار گزینه مناسبی است؟

آیا گیت هاب فقط مناسب برنامه نویسان است؟

طرز کار گیت هاب چیست ؟

آیا استفاده از گیت هاب بدون کدنویسی ممکن است؟

تست کردن کدها در گیت هاب چگونه است؟

Pull Request در گیت هاب چیست ؟

درخواست Merge در گیت هاب چیست ؟

چند شاخه شدن مخزن در گیت هاب چیست ؟

Clone مخزن در گیت هاب چیست ؟

تفاوت عمل Fork و Pull Request در گیت هاب چیست؟

بستن درخواست واکشی در گیت هاب چیست ؟

سخن پایانی

faradars mobile

در پاسخ به این سوال که «گیت هاب چیست»، به طور خلاصه می‌توان گفت که «گیت هاب» سیستمی برای کنترل نسخه به شمار می‌رود. مفهوم «سیستم کنترل نسخه» و همچنین دیگر موارد مرتبط را در ادامه، بررسی خواهیم کرد.

مقدمات یادگیری گیت هاب چیست؟

در این بخش به بررسی برخی از مفاهیم و عناوین مقدماتی در رابطه با موضوع گیت هاب، از جمله مفهوم «سیستم‌های کنترل نسخه» پرداخته‌ایم، که مطالعه آن، اطلاعات مفیدی را در اختیار شما قرار می‌دهد.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

سیستم کنترل نسخه چیست؟

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

آموزش گیت  و گیت هاب در اندروید استودیو - Git و GitHub در Android Studio
فیلم آموزش گیت و گیت هاب در اندروید استودیو – Git و GitHub در Android Studio در تم آف

کلیک کنید

«کنترل نسخه» که با نام «کنترل منبع» (Source Control) نیز شناخته می‌شود، به منظور نگهداری نسخه‌های متعدد سورس کد به کار برده می‌شود. به عبارت دیگر، این سیستم به منظور ردیابی تغییراتی مورد استفاده قرار می‌گیرد که در طول زمان، روی کدهای منبع ایجاد شده است.

کاربرد سیستم کنترل نسخه به همین مورد خلاصه نمی‌شود و امکان مشارکت و همکاری برنامه‌نویسان با یکدیگر، استقرار سورس کد از کامپیوترهای محلی به «سرورهای مرحله‌بندی» (Staging Server)، سپس به «سرورهای ارزیابی» (Testing Server) و در نهایت به «محیط تولید» را فراهم می‌کند. سیستم کنترل نسخه، ابزاری یکپارچه است که به ما امکان می‌دهد تا کدهایمان را در فضای ابری نیز مستقر کنیم.

لازم به ذکر است که سرورهای «مرحله‌بندی»، برای آزمایش ایمن برنامه‌ها، در محیطی شبیه به محیط تولید، استفاده می‌شوند و به کشف مشکلات نرم‌افزاری قبل از انتشار محصول، کمک می‌کنند.

سیستم کنترل نسخه

کاربردهای سیستم کنترل نسخه چیست؟

«کنترل نسخه»، امکاناتی را در اختیار برنامه‌نویس قرار می‌دهد که به کمک آن روند توسعه نرم‌افزار ساده‌تر می‌شود. در ادامه، این موارد را فهرست کرده‌ایم.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

  1. پشتیبان‌گیری: همزمان با پیشرفت پروژه، کارهای صورت گرفته را ذخیره می‌کنیم.
  2. نگهداری سابقه: نسخه فعلی پروژه را با نسخه‌ای دلخواه (که قبلاً ساخته‌ایم)، مقایسه می‌کنیم.
  3. مشاهده تغییرات: تغییراتی را که در پروژه رخ داده است به طور دقیق و خط به خط دنبال می‌کنیم.
  4. مشارکت: «کنترل نسخه»، به کاربران متعدد اجازه می‌دهد تا به طور همزمان روی پروژه‌ای خاص، مشارکت و همکاری داشته باشند و این کار با پرهیز از تداخل‌های ممکن، مانند بازنویسی تصادفی کار یکی از کاربران روی کار مربوط به کاربر دیگر، صورت می‌گیرد.

مزیت های سیستم کنترل نسخه چیست؟

استفاده از کنترل نسخه در توسعه وب، مزایای زیادی را به دنبال دارد که در ادامه برخی از آن‌ها را مرور می‌کنیم.

  • داده‌ای از دست نمی‌رود (گُم نمی‌شود). نحوه ذخیره داده در Git، به گونه‌ای است که هرگز از بین نمی‌رود.
  • بازگشت به هر بخش از سابقه موجود، آسان است. Git تاریخچه تغییرات را ذخیره می‌کند و این امکان را در اختیار کاربر قرار می‌دهد تا به نسخه دلخواه برگردد.
  • پرهیز از بازنویسی را آسان‌تر می‌کند. Git به طور خودکار زمانی که کار شما با کار دیگری در تضاد است، به شما اطلاع می‌دهد.
  • تغییر ابعاد کار، آسان شده است. Git با همگام‌سازی کاری که تیم‌ها انجام داده‌اند، مقیاس‌پذیری پروژه را آسان‌تر می‌کند.
ابزار گیت هاب چیست

چه کسانی از کنترل نسخه استفاده می‌کنند؟

سیستم کنترل نسخه، می‌تواند به وسیله افرادی به کار برده شود که در ادامه فهرست شده‌اند.

  • تیم‌های DevOps
  • تیم‌های توسعه نرم‌افزار
  • تیم‌های مهندسی
  • تیم‌های علم داده
  • سایر افراد متخصص در زمینه فناوری

انواع سیستم های کنترل نسخه کدامند؟

سیستم‌های کنترل نسخه، ۲ دسته «متمرکز» (Centralized) و «توزیع‌شده» (Distributed) را شامل می‌شوند.

انواع سیستم کنترل نسخه
«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید».

سیستم کنترل نسخه متمرکز چیست؟

در «سیستم‌های کنترل نسخه متمرکز» (Centralized Version Control Systems | CVCS)، تمام محتویات پروژه، در سرور مرکزی ذخیره می‌شود. هر کاربر کد را از «مخزن اصلی» (Master Repository) یا سرور دریافت و تغییرات صورت گرفته روی آن را به نسخه مرکزی ارسال می‌کند. بنابراین برای ثبت هر تغییر، نیاز داریم تا به سرور متصل شویم. یادگیری «کنترل نسخه متمرکز» از «کنترل نسخه توزیع شده» آسان‌تر است.

کنترل نسخه توزیع شده چیست؟

ساز و کار «سیستم کنترل نسخه توزیع شده» (Distributed Version Control Systems | DVCS)، مشابه مکانیزم‌های کنترل نسخه متمرکز است. بزرگترین تفاوتی که می‌توان میان این ۲ قائل شد، این است که در نوع متمرکز، به جای مخزن واحدی که روی سرور قرار دارد، در اینجا هر یک از برنامه‌نویسان، نسخه‌ای «کپی» از کل سابقه را در کامپیوتر محلی خود نگهداری می‌کنند.

سیستم کنترل نسخه توزیع شده در مقابلِ نوعِ متمرکز آن، پیچیده‌تر است و سرعت بسیار بیشتری دارد. همچنین، علاوه بر اینکه به عملکرد شبکه متکی نیستند، امکان دسترسی آفلاین را نیز فراهم می‌کنند.

گیت چیست؟

علیرغم آن چیزی که از زندگی برنامه‌نویسان در فیلم‌ها نمایش داده می‌شود و تصوری که عموم افراد از توسعه‌دهندگان دارند و آن‌ها را افرادی منزوی و به دور از زندگی اجتماعی می‌پندارند، زندگی اجتماعی و همکاری (مشارکت) در این دسته از افراد، نقش بسزایی دارد. اتفاقاً گیت و گیت هاب به عنوان ابزاری در همین رابطه و برای مشارکت بین برنامه‌نویسان، مورد استفاده قرار می‌گیرند.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

گیت، «سیستم کنترل نسخه توزیع شده‌ای» آزاد و اوپن سورس است که تغییرات صورت گرفته را در هر مجموعه‌ای از فایل‌های کامپیوتری، دنبال می‌کند. از کاربردهای گیت می‌توان به ایجاد هماهنگی بین برنامه‌نویسانی اشاره کرد که روی سورس کدی مشترک کار می‌کنند و به صورت مشارکتی روند توسعه پروژه را پیش می‌برند. از اهداف گیت می‌توان به سرعت زیاد، یکپارچگی داده‌ها و سایر موارد اشاره کرد.

گیت و گیت هاب

گیت به وسیله آقای «لینوس توروالدز» در سال ۱۳۸۴ (۲۰۰۵ میلادی) به منظور توسعه هسته لینوکس نوشته شد. البته دیگر توسعه‌دهندگان هسته نیز در توسعه و خلق نسخه اولیه آن سهیم بودند. این سیستم تحت مجوز «جی‌پی‌اِل ۲» به اشتراک گذشته شده است و توسط آقای «جونیو هامانو» نگهداری می‌شود. در ادامه به طور خلاصه برخی از اصطلاحات موجود در گیت را با هم مرور خواهیم کرد.

ریپازیتوری Repository یا مخزن چیست؟

«ریپو»، «ریپازیتوری» (Repository) یا «مخزن» (Repository)، به مجموعه‌ای از فایل‌ها و پوشه‌ها گفته می‌شود که قرار است با «گیت»، آن‌ها را ردیابی کنیم. به بیان دیگر می‌توان گفت که ریپازیتوری، تاریخچه تغییراتی را نگهداری می‌کند که توسط اعضای تیم روی پروژه اعمال شده است.

گیت هاب چه نوع ابزاری است؟

گیت هاب، یکی از محبوب‌ترین راهکارهای ذخیره‌سازی از راه دور برای مخازن گیت محسوب می‌شود. همچنین به ما امکان تنظیم مجوزهای دسترسی برای پروژه‌ها، پیگیری و ارسال باگ‌ها، مشترک شدن در اعلان‌های مخزن، استفاده از رابطی گرافیکی به جای خطِ فرمان و سایر موارد را می‌دهد. در حالت عادی، مخازن به صورت «عمومی» (Public) منتشر می‌شوند، اما با پرداخت هزینه‌ای می‌توانیم مخازن «خصوصی» (Private) نیز داشته باشیم.

منظور از Commit یا کامیت کردن در گیت چیست؟

اصطلاح «کامیت» یا «تثبیت» (Commit) به فرایند ذخیره تغییرات انجام شده در پروژه اشاره دارد. توجه داشته باشید که کامیت‌ها تا زمانی‌که به مخزنِ راه دور «ارسال» (Push) نشوند، روی سیستم محلی قرار دارند.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

منظور از push در گیت چیست؟

عمل «push» در حقیقت، تکمیل کننده عمل «Commit» محسوب می‌شود. می‌توان گفت که «Pushing» برای همگام‌سازی کامیت‌های ما با بستر ابری (یا همان گیت هاب) صورت می‌گیرد. می‌توانیم کامیت‌های متعددی را به اصطلاح Push کنیم.

پوش در گیت

منظور از Branch در گیت چیست؟

اگر مخزن گیت را به صورت درخت در نظر بگیریم، تنه درخت «Master Branch» در نظر گرفته می‌شود. به شاخه‌های این درخت نیز «Branch» می‌گوییم. شاخه‌ها در حقیقت، نمونه‌های جداگانه‌ای از کدها هستند که از کد اصلی منشعب شده‌اند.

علت ایجاد شاخه، ممکن است افزودن ویژگی جدید به پروژه یا برای مقاصد آزمایشی باشد. با این کار، یکپارچگی پروژه حفظ می‌شود و در صورت بروز خراب‌کاری، راهی برای بازگشت به حالت قبلی وجود دارد. همچنین این امکان را برای ما فراهم می‌کنند تا بدون ایجاد مزاحمت در کار اعضای دیگر تیم (یا بالعکس)، کار خودمان را پیش ببریم.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

منظور از Merge در گیت چیست؟

وقتی که شاخه مورد نظر تکمیل شد (توسعه‌ مورد نظر صورت گرفت و باگ‌های آن تا حد امکان برطرف شد) و آماده شد تا تبدیل به جزئی از کدهای اصلی پروژه باشد، می‌توانیم آن را در «شاخه اصلی» (Master Branch)، ادغام (Merge) کنیم. «ادغام» چیزی نیست جز یکی کردن (یکپارچه کردن) ۲ شاخه با یکدیگر، به این ترتیب که کدهای جدید یا به‌روز شده ما، به بخشی رسمی از پایگاه کدهای اصلی تبدیل می‌شوند و هر کسی که از نقطه ادغام به بعد، شاخه‌ای ایجاد کند، کدهای ما هم جزئی از آن خواهند بود.

منظور از Clone در گیت چیست؟

عمل کلون کردن یا «کپی» (Cloning) مخزن، کل مخزن آنلاین را می‌گیرد و یک کپی دقیق از آن را در دستگاه محلی‌مان ایجاد می‌کند. دلایل زیادی برای این کار وجود دارد که مهم‌ترین آن‌ها می‌تواند شامل شروع پروژه از مخزن معیوب، تعویض ایستگاه‌های کاری یا شروع در میانه‌ی پروژه با تیمی جدید باشد.

clone در گیت هاب

منظور از Fork در گیت چیست؟

عمل «منشعب شدن» (Forking)، شباهت زیادی به کلون کردن دارد با این تفاوت که به جای ایجاد رونوشتی از مخزن موجود روی سیستم محلی، مخزن کاملاً جدیدی از آن کد به نام خود دریافت می‌کنیم. این ویژگی، عمدتاً برای دریافت کدهای پروژه‌ای موجود و طی کردن مسیری جدید در توسعه آن است که این گونه مورد استفاده قرار می‌گیرد، فرایندی که در نرم‌افزارهای اوپن سورس به وفور شاهد آن هستیم.

توسعه‌دهندگان ایده نو و کارکرد آن را مشاهده می‌کنند، سپس تصمیم می‌گیرند که راه دیگری را با آن پیش ببرند. چند شاخه شدن یا منشعب شدن، ما را به این هدف می‌رساند. همچنین می‌توانیم برای ادغام تغییرات انجام شده توسط ما، در مخزن اصلی نیز، «درخواست Pull» یا (Pull Request) ایجاد کنیم.

fork در گیت هاب چیست

در رابطه با مفاهیمی که در بالا تعریف شدند، در ادامه این مطلب، توضیحات بیشتری ارائه خواهد شد.

گیت هاب چیست ؟

«گیت هاب» (GitHub ابزای آنلاین است که خدمات مربوط به «کنترل منبع» (Source Control) را برای ما فراهم می‌کند. «نرم‌افزار کنترل منبع» عموماً به منظور مدیریت تغییراتِ کدهایمان مورد استفاده قرار می‌گیرد تا مطمئن شویم که اطلاعات مربوط به موارد تغییر یافته و هچنین زمان و علت آن، ثبت می‌شوند.

آموزش ساخت پروفایل حرفه ای گیت هاب GitHub و نکات مهم در پروژه ها
فیلم آموزش ساخت پروفایل حرفه ای گیت هاب GitHub و نکات مهم در پروژه ها در تم آف

کلیک کنید

به این ترتیب، بعد از مدتی (مثلاً چند ماه بعد)، در صورتی که به مشکلی بر بخوریم یا باگی پیدا شد، ویژگی سابقه تغییرات یا «Version History» به ما کمک می‌کند تا بتوانیم بفهمیم که چه مشکلی رخ داده است. بزرگترین مزیت این ویژگی، زمانی است که در حال «کدنویسی مشارکتی» (Collaborative Code-writing) هستیم. نرم‌افزار کنترل منبع در نهایت به تمام اعضای تیمِ توسعه کمک می‌کند تا کدهای یکدیگر را درک کنند و همچنین، تغییرات صورت گرفته توسط یکدیگر را ببینند.

گیت هاب، اصطلاحات فنی گسترده‌ای را پوشش می‌دهد، که برای کاربران جدید، یا کسانی که اصول گیت را نمی‌دانند، اما می‌خواهند مهارت خود را در این زمینه گسترش دهند، می‌تواند مبهم باشد. بنابراین، در ادامه این مطلب به شرح اصطلاحات رایج و مفاهیم موجود در گیت و گیت هاب می‌پردازیم. لازم به ذکر است که در این مطلب، از ابزار VSCode استفاده می‌کنیم.

نصب گیت و گیت هاب در ویژوال استودیو کد چگونه است؟

اولین قدم برای استفاده از گیت هاب با ویژوال استودیو کد، این است که «Git» را روی کامپیوتر خود راه‌اندازی، سپس آن را در ویژوال استودیو کد، فعال کنیم. در این قسمت از مطلب «گیت هاب چیست»، مراحل نصب و راه‌اندازی گیت و گیت هاب در ویژوال استودیو کد، را با هم مرور خواهیم کرد. این بخش شامل عناوینی است که در ادامه آمده است و هریک از آن‌ها را مورد بررسی قرار داده‌ایم.

  • مروری بر GitHub ،Git و VSCode
  • نصب Git روی سیستم
  • فعال‌سازی Git در VS Code
  • ایجاد حساب در GitHub
  • پیکربندی ورود به گیت هاب

مروری بر GitHub ،Git و VSCode

«ویژوال استودیو کد» (Visual Studio Code) که به اختصار «VSCode» نامیده می‌شود، ویرایشگر کدی برای توسعه، اجرا و دیباگ کدهای برنامه به شمار می‌رود. «گیت» (GIT)، ابزاری است که امکان ایجاد مخزن محلی (روی کامپیوتر خود) و مدیریت نسخه‌های فایل‌‌هایمان را فراهم می‌کند.

«گیت هاب» (GitHub)، نیز سرویسی آنلاین است که به عنوان میزبانی برای مخازن گیت ما (در فضای ابری) محسوب می‌شود. بنابر مستندات رسمی ویژوال استودیو، لازم است قبل از اینکه بتوانید به گیت از داخل ویژوال استودیو کد دسترسی داشته باشید، Git را روی سیستم خود نصب کنیم.

نصب Git روی کامپیوتر چگونه است؟

برای فهمیدن این مورد که آیا گیت قبلاً روی سیستم ما نصب شده است یا خیر، می‌توانیم به خطِ فرمان (در ویندوز) یا ترمینال (در مَک) برویم و دستور مربوطه را به نحوی تایپ کنیم که در ادامه آمده است.

$ git --version
git version 2.20.1.windows.1

در صورت عدم نمایش نتیجه فوق (نصب نبودن گیت روی سیستم)، کافی است به سایت «Git-SCM»‌ برویم و فایل اجرایی گیت را با توجه به سیستم خود (سیستم‌عامل‌های ویندوز، مَک، لینوکس/یونیکس) دانلود و نصب کنیم.

فعال سازی Git در VS Code چگونه است؟

برای فعال‌سازی گیت در ویژوال استودیو کد روی سیستم عامل ویندوز، لازم است تا طبق مراحلی که در ادامه آمده، پیش برویم.

  • از منوی «File» روی گزینه «Preferences» کلیک می‌کنیم.
  • به قسمت «Settings» می‌رویم.
  • عبارت Git: Enabled

     را در نوار جستجو تایپ می‌کنیم.

  • مطمئن می‌شویم که تیک کنار آن زده شده است.

همچنین، برای فعال‌سازی گیت در سیستم عامل «مَک»، گام‌هایی که در ادامه آمده است را انجام می‌دهیم.

  • از منوی «Code» روی گزینه «Preferences» کلیک می‌کنیم.
  • به قسمت «Settings» می‌رویم.
  • عبارت Git: Enabled

     را در نوار جستجو تایپ می‌کنیم.

  • مطمئن می‌شویم که تیک کنار آن زده شده است.
فعال‌سازی Git در VS Code

ایجاد حساب در GitHub و ورود به آن چگونه است؟

برای ایجاد حساب کاربری روی گیت هاب، کافی است به سایت GitHub.com برویم و با وارد کردن اطلاعات خواسته شده، حساب کاربری مخصوص به خود را ایجاد کنیم.

ایجاد حساب در Github و ورود به آن

پیکربندی ورود به گیت هاب چگونه است؟

حالا، زمان آن رسیده است تا آدرس ایمیل مربوط به «Commit» خود را در Git راه‌اندازی کنیم. برای پیکربندی «ورود به سیستم Git»، باید «نام کاربری» (Username) و آدرس ایمیل خود را در Git تنظیم کنیم. برای انجام این کار، ترمینال را باز و نام کاربری را در Git، به صورتی وارد می‌کنیم که در ادامه آمده است.

git config --global user.name "yourusername"

همچنین برای تنظیم آدرس ایمیل، دستوری که در ادامه آمده است را برای ایمیل خود تایپ می‌کنیم.

git config --global user.email "email@youremail.com"

مخزن در گیت هاب چیست؟

«مخزن» (Repository) روی گیت هاب را می‌توان پوشه‌ای در نظر گرفت که به ما در سازمان‌دهی پروژه کمک می‌کند. مخزن، تمام فایل‌ها و نسخه‌های مربوط به پروژه‌مان را در بر می‌گیرد. در این قسمت از مطلب «گیت هاب چیست»، نحوه ایجاد مخزن روی گیت هاب را با هم مرور خواهیم کرد.

نحوه ساخت مخزن از طریق گیت هاب چگونه است؟

برای ایجاد مخزن جدید در گیت هاب لازم است تا مراحلی که در ادامه آمده را انجام دهیم. ابتدا، گزینه «Start a project» را انتخاب یا اینکه گزینه «New Repository» را در سمت راست و بالای صفحه کلیک می‌کنیم.

ایجاد مخزن جدید در گیت هاب

سپس، لازم است تا نامی‌ را برای مخزن خود انتخاب کنیم. بهتر است نام انتخابی، واضح باشد تا هم به خاطر سپردن آن آسان باشد و هم توضیحی را برای کاربرد مخزن ارائه دهد. این کار ما را از سردرگمی هنگام افزایش تعداد مخزن‌ها و کار روی چندین پروژه، نجات می‌دهد. در صورت لزوم، می‌توانیم مخزن را به حالت «خصوصی» (Private) درآوریم.

پس از آن می‌بایست مخزنی که ساختیم را با ایجاد فایل README

 ، راه‌اندازی کنیم. با افزودن این فایل، می‌توانیم اطلاعاتی را در مورد پروژه، به آن اضافه کنیم. حالا تنها کاری که باقی مانده این است که روی گزینه «Create Repository» کلیک کنیم.

تنظیمات ایجاد مخزن روی گیت هاب

همان‌طور که در ادامه نشان داده شده است، توانستیم با موفقیت، اولین مخزن یا «repo» را در گیت هاب بسازیم.

اولین مخزن ساخته شده روی گیت هاب

در ادامه، خلاصه مراحل ساخت مخزن روی گیت هاب آورده شده است.

  • روی «New repository»، در بالا و سمت راست صفحه، کلیک می‌کنیم.
  • نامی را برای مخزن انتخاب می‌کنیم.
  • مخزن را با فایل README

      راه‌اندازی می‌کنیم.

  • بر روی «Create repository» کلیک می‌کنیم.
ایجاد مخزن در گیت هاب

برگه تقلب ویژوال استودیو کد برای گیت هاب چیست ؟

در ادامه، مواردی مربوط به گیت هاب عنوان شده است که می‌توانید از آن‌ها در بخش «Commands» ،«Terminal» یا «Source Control Panel» مربوط به ویژوال استودیو کد استفاده کنید. توضیحات لازم برای نحوه ورود به هر یک از بخش‌های مذکور نیز بیان شده است.

  • برای دسترسی به بخش «Commands»، می‌توانیم از کلیدهای ترکیبی Ctrl + Shift + P

     (در ویندوز) یا Command + Shift + P

     (برای کاربران Mac) استفاده کنیم.

  • برای باز کردن پنجره ترمینال، می‌بایست از منوی «Terminal»، گزینه «New Terminal» را انتخاب کنیم.
  • پنل سورس کنترل را می‌توانیم از نوار سمت چپ ویژوال استودیو کد یا از طریق فشردن کلیدهای ترکیبی Control + Shift + G

     ، باز کنیم.

ایجاد مخزن گیت هاب در ویژوال استودیو کد از دکمه «Publish to GitHub» استفاده می‌کنیم.
Clone کردن مخزن گیت هاب در ویژوال استودیو کد دستور Git: Clone

را به کار می‌بریم.

Clone کردن مخزن گیت هاب از ترمینال از دستور git clone

استفاده می‌کنیم.

انتقال مخزن گیت از ترمینال دستور git push

 را به کار می‌بریم.

انتقال مخزن گیت از Source Control «Commit» ،«Stage» را انجام می‌دهیم و گزینه «Push» را از منوی «Push, Pull» انتخاب می‌کنیم.

شاخه در گیت هاب چیست؟

شعبه یا «شاخه» (Branch)، نسخه‌ای منشعب شده از مخزنی است (از پروژه اصلی) که روی آن کار می‌کنیم. این ویژگیِ مهم و ضروری، در اکثر «سیستم‌های کنترل نسخه» (Version Control Systems) فعلی وجود دارد.

آموزش گیت Git – تکمیلی
فیلم آموزش گیت Git – تکمیلی در تم آف

کلیک کنید

پروژه گیت، می‌تواند بیش از یک شاخه داشته باشد و عملیات متعددی از جمله تغییر نام، فهرست‌کردن، حذف و غیره را می‌توانیم روی آن‌ها انجام دهیم. این شاخه‌ها، اشاره‌گری به اسنپ‌شاتِ تغییرات صورت گرفته به وسیله ما، محسوب می‌شوند. هنگامی‌که می‌خواهیم یک ویژگی جدید اضافه کنیم یا اینکه باگی را در پروژه برطرف کنیم، شاخه‌ای جدید ایجاد می‌کنیم.

شاخه ها در گیت هاب
«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید».

شاخه اصلی در گیت چیست ؟

«شاخه اصلی» (Master Branch)، شاخه پیش‌فرض در گیت است که با انجام اولین «تثبیت» (Commit) در پروژه، ایجاد می‌شود. همه تغییرات در نهایت در این شاخه ادغام می‌شوند و می‌توان آن را به عنوان نسخه رسمی پروژه در نظر گرفت.

عملیات مربوط به شاخه ها در گیت چیست ؟

ما می‌توانیم عملیات گوناگونی را روی شاخه‌های گیت اِعمال کنیم. دستور git branch

 به ما امکانِ ایجاد، فهرست‌بندی، تغییر نام و حذف شاخه‌ها را می‌دهد و همچنین، ارتباط نزدیکی‌ با دستورات git checkout

 و git merge

  دارد. لازم به ذکر است که هر کدام از این دستورات کاربرد خاص خود را دارند و در ادامه مورد بررسی قرار می‌گیرند.

دستور git branch در گیت چیست؟

نحوه نوشتن این دستور، به شکلی است که در ادامه آمده است.

$ git branch 

دستور git branch

، شاخه‌ای به نام ، به صورت محلی در پوشه گیت ما می‌سازد.

آموزش گیت  و گیت هاب در اندروید استودیو - Git و GitHub در Android Studio
فیلم آموزش گیت و گیت هاب در اندروید استودیو – Git و GitHub در Android Studio در تم آف

کلیک کنید

دستور list branch در گیت چیست؟

با استفاده از این دستور می‌توانیم تمام شاخه‌های موجود در مخزن خود را فهرست کنیم. نحوه استفاده از این دستور به صورت git branch – list

یا git branch

 است.

$ git branch --list
$ git branch

هر دوی این دستورات، شاخه‌های موجود در مخزن را فهرست می‌کنند. علامت «*» موجود در کنار نام شاخه، بیان‌گر «فعال» (Active) بودن شاخه است.

فهرست کردن شاخه‌های مخزن

دستور delete branch در گیت چیست؟

اگر بخواهیم شاخه‌ای مشخص را حذف کنیم از این دستور استفاده می‌کنیم. عملیاتی که این دستور انجام می‌دهد، اصطلاحاً ایمن است. یعنی این دستور در گیت، از حذف شاخه‌ای که تغییرات ادغام نشده دارد، جلوگیری می‌کند. نحوه استفاده از این دستور، در ادامه آمده است.

$ git branch -d 

مثال فوق، شاخه «B1» موجود را از مخزن ما حذف می‌کند. خروجی آن نیز به صورتی که در ادامه آمده است، نمایش داده می‌شود.

حذف شاخه گیت هاب

دستور git branch d

 به ۲ شکل قابل استفاده است. فرمت دیگری که این دستور دارد، git branch D

 است. دستور «git branch D» نیز برای حذف شاخه‌ای مشخص، استفاده می‌شود.

$ git branch -D 

دستور switch branch در گیت چیست؟

گیت این امکان را در اختیار ما قرار می‌دهد تا بدون انجام کامیت، بین شاخه‌ها جابجا شویم. این کار با استفاده از دستور git checkout

  انجام می‌شود و با آن می‌توانیم بین دو شاخه جابجا شویم. نحوه استفاده از این دستور در ادامه آمده است.

$ git checkout

بنابراین می‌توانیم بدون انجام هیچ گونه کامیتی، از شاخه «اصلی» (Master) به هر شاخه دیگری که مایل باشیم (و در مخزن ما موجود باشد) منتقل شویم. اگر بخواهیم از هر شاخه‌ای که هستیم به شاخه اصلی منتقل شویم. دستوری که در ادامه آمده است، در این رابطه به ما کمک می‌کند.

$ git branch -m master

دستور rename branch در گیت چیست؟

با استفاده از دستور git branch

 می‌توانیم نام شاخه مورد نظر را تغییر دهیم. برای تغییر نام یک شاخه، به صورتی که در ادامه آمده است عمل می‌کنیم.

$ git branch -m 

در ادامه، مثالی بیان شده است که نام شاخه‌ای با نام «branch4» را به «renamedB1» تغییر می‌دهد.

تغییر نام شاخه گیت هاب

دستور merge branch در گیت چیست؟

یکی از امکاناتی که گیت در اختیار ما قرار می‌دهد این است که می‌توانیم شاخه‌ای را با شاخه فعال فعلی ادغام یا Merge کنیم و به این ترتیب ۲ شاخه موجود را به صورت یکپارچه در آوریم. نحوه استفاده از این دستور در ادامه آمده است.

$ git merge 

در ادامه، مثالی بیان شده است که با به کار گیری دستور فوق، شاخه اصلی را با شاخه‌ای به نام «renamedB1» ادغام می‌کند. از آنجایی که، قبل از «ادغام»، هیچ کامیتی انجام نداده‌ایم، بنابراین خروجی به صورت «Already up to date» نشان داده می‌شود.

ادغام شاخه در گیت هاب

روش ایجاد شاخه در مخزن گیت هاب چیست ؟

همان‌طور که گفته شد، Branchها، محیط‌هایی مجازی هستند که می‌توانیم تغییراتی را روی آن‌ها، بدون اینکه بر روی سایر شاخه‌ها تاثیر بگذارند (در داخل یک کانتینر) اِعمال کنیم. برای ایجاد شاخه‌ها روی گیت هاب یا حذف شاخه‌ها از آن، کار سختی در پیش نداریم. برای ایجاد شاخه‌ای جدید روی گیت هاب، کافی است تا طبق مراحلی جلو برویم که در ادامه شرح داده شده‌اند.

آموزش گیت Git – تکمیلی
فیلم آموزش گیت Git – تکمیلی در تم آف

کلیک کنید

در مخزن گیت هابی که متعلق به ما است، می‌توانیم وقتی در زبانه «Code» هستیم، در سمت چپ و بالا، روی لیست کشویی مربوط به شاخه‌ها کلیک کنیم. پس از آن، می‌بایست گزینه «View all branches»، به منظور نمایش همه شاخه‌ها، انتخاب شود.

ایجاد شاخه‌ای جدید روی گیت هاب

در پنجره‌ باز شده، روی دکمه «New branch» کلیک می‌کنیم.

ایجاد شاخه‌ای جدید روی گیت هاب

پس از آن، نامی‌ دلخواه را برای شاخه، انتخاب و بر روی فهرست کشویی «Branch source» کلیک می‌کنیم.

ایجاد شاخه‌ای جدید روی گیت هاب

اگر مخزن ما یک انشعاب «Fork» باشد، این «Fork» یا مخزن اصلی را به عنوان «منبع شاخه» (branch source) انتخاب می‌کنیم.

ایجاد شاخه‌ای جدید روی گیت هاب

در مرحله بعد، «توضیحی» (Comment) نمایش داده می‌شود با این مضمون که «شعبه مورد نظر به زودی ایجاد خواهد شد».

ایجاد شاخه‌ای جدید روی گیت هاب

حالا اگر به زبانه «Code» برگردیم، خواهیم دید که شاخه جدید، به درستی ایجاد شده است.

ایجاد شاخه‌ای جدید روی گیت هاب

روش حذف شاخه در مخزن گیت هاب چیست ؟

برای این منظور دوباره به صفحه اصلی مخزن خود (زبانه Code) بر می‌گردیم. از لیست کشویی، روی دکمه «View all branches» کلیک می‌کنیم.

حذف شاخه‌ای از گیت هاب

حالا کافی است تا روی آیکن سطل زباله مربوط به شاخه‌ای کلیک کنیم که قصد حذف آن را داریم.

حذف شاخه‌ای از گیت هاب

سپس اگر به زبانه main مخزن‌مان برگردیم، خواهیم دید که شاخه مورد نظر حذف شده است و دیگر در فهرست کشویی نمایش داده نمی‌شود.

حذف شاخه‌ای از گیت هاب

اگر بخواهیم شاخه‌ای را که از روی گیت هاب حذف کردیم، مجدداً بازیابی کنیم، تنها کاری که باید انجام دهیم این است که در منوی کشویی شاخه‌ها، گزینه «View all branches» را انتخاب کنیم.

github branches 10

پس از آن، با کلیک روی دکمه «Restore» موجود در کنار شاخه مورد نظر، به راحتی می‌توانیم آن را بازیابی کنیم.

حذف شاخه‌ای از گیت هاب

Pull در گیت هاب چیست ؟

در این قسمت از مطلب «گیت هاب چیست»، یاد می‌گیریم که چگونه درخواست «واکشی» (Pull) ساده‌ای را در گیت هاب ایجاد کنیم. برای اینکه توضیحات مربوط به این قسمت کامل‌تر باشد، در کنار حساب کاربری خود در گیت هاب، حساب دیگری (حساب دومی) را هم باز کردیم.

آموزش گیت  و گیت هاب در اندروید استودیو - Git و GitHub در Android Studio
فیلم آموزش گیت و گیت هاب در اندروید استودیو – Git و GitHub در Android Studio در تم آف

کلیک کنید

در حساب کاربری دوم، مخزنی به نام تست (Test Repository) وجود دارد که قصد داریم تغییراتی را روی آن ایجاد کنیم. بنابراین لازم است تا یک «درخواست Pull» یا «Pull Request» انجام دهیم.

pull در گیت هاب

درخواست pull در گیت هاب چیست؟

«درخواست واکشی» (Pull Request) که با عنوان «درخواست ادغام» (Merge Request) نیز شناخته می‌شود، درخواستی است که برای مطلع ساختن صاحب مخزن از تغییراتی استفاده می‌شود که به مخزن «ارسال» (pushed) شده است تا آن‌ها بتوانند تغییرات را بررسی (بازبینی) کنند و تغییرات را به مخزن pull کنند. مفهوم «درخواست Pull» در ادامه آمده است.

  • انشعابی است که از یک مخزن ایجاد می‌کنیم.
  • تغییراتی که روی آن صورت می‌گیرد.
  • درخواستی که برای واکشی، به صاحب مخزن ارسال می‌شود.
  • درخواست Pull که توسط دارنده مخزن تایید می‌شود.

پس از ارسال «درخواست Pull»، دارنده (صاحب) مخزن، Pull Request را بررسی می‌کند. برای اینکه بفهمیم پس از ارسال «درخواست pull»، چه اتفاقی می‌افتد، اجازه دهید به حساب GitHub دوم و به مخزن تست برگردیم. در اکانت دوم (در نقش دارنده مخزن که درخواست pull را دریافت کرده)، می‌خواهیم «درخواست pull»‌ را ادغام کنیم.

اکنون که در حساب دوم هستیم، عددی کنار زبانه «Pull requests» نشان داده می‌شود که بیانگر دریافت تعداد درخواست‌های pull دریافتی (به عنوان مثال از سمت حساب اول) است.

درخواست pull در گیت هاب

در صورتی که روی آن کلیلک کنیم، جزئیات درخواست را هم می‌توانیم مشاهده کنیم.

جزئیات درخواست pull در گیت هاب

به عنوان مالک، روی ردیف «درخواست pull»، کلیک می‌کنیم تا آن را بررسی کنیم.

درخواست pull در گیت هاب

در اینجا دارنده می‌تواند کامیت‌‌ها را بررسی کند تا ببیند آیا بررسی یا «چک‌های ناموفق» (Failed Checks) وجود دارد یا خیر و همچنین تغییر ایجاد شده را ببیند.

درخواست pull در گیت هاب

دارنده مخزن یا «مشارکت‌کننده» (Contributor)، پس از بررسی می‌تواند درخواست دریافتی را تأیید کند.

درخواست pull در گیت هاب

در زبانه «Write» ، توضیحی مبنی بر تایید را خواهید دید. اکنون، می‌توانید با کلیک کردن بر روی «merge pull request» درخواستی برای ادغام واکشی ایجاد کنید.

forks and pull 24 در آخرین مرحله،‌ کافی است تا ادغام را تایید کنیم.

forks and pull 25

در حال حاضر، دارنده مخزن، درخواست «Pull» ارسالی توسط ما را پذیرفته و عمل ادغام را انجام داده است. به زبانه «Code» در مخزن بر می‌گردیم، اکنون می‌توانیم ببینیم که «مخزن تست» (Test Repository)، تغییرات ایجاد شده را شامل می‌شود.

forks and pull 26

چگونه به گیت هاب Commit کنیم؟

اکنون که اولین فایل خود در ویژوال استدیو کد را ایجاد کردیم، می‌خواهیم اولین «Commit» خود به گیت هاب را انجام دهیم. همچنین آن را اصطلاحاً  به گیت هاب «Push» کنیم.

آموزش گیت Git – تکمیلی
فیلم آموزش گیت Git – تکمیلی در تم آف

کلیک کنید

اگر مفهوم «Commit» کردن را هنوز به درستی درک نکردید، نگران نباشید. تنها لازم است تا مواردی که در ادامه آورده شده است را انجام دهید.

  • تغییرات صورت گرفته در فایل را ذخیره کنیم.
  • به شاخه «اصلی» (Master)، «Commit» می‌کنیم.
  • به گیت هاب «Push» می‌کنیم.

در ادامه، به توضیح هر یک از موارد بالا، می‌پردازیم.

ذخیره کردن تغییرات چگونه انجام می‌شود؟

اولین قدم این است که فایل .gitignore

ایجاد شده را ذخیره کنیم. برای این منظور، می‌توانیم از کلیدهای ترکیبی CTRL + S

 (روی ویندوز)، یا Command + S

 (روی Mac) استفاده کنید یا اینکه از منوی «File» گزینه «Save» را انتخاب کنید.

کامیت کردن تغییرات چگونه انجام می‌شود؟

در قدم دوم، در پنل سورس کنترل، روی آیکون «بررسی» (علامت تیک) کلیک می‌کنیم.

commit 1

این کار، تغییرات انجام شده را به فایل «master» کامیت می‌کند. با انجام این کار، تغییراتی که در فایل «اصلی» (Master) خود ایجاد کردیم، «Commit» می‌شود. بهتر است تا پیامی‌ را درج کنیم تا در آینده بدانیم که این «Commit» به چه منظوری انجام شده است.

commit 2

push در گیت هاب چیست ؟

پیش‌تر گفتیم که، اصطلاح «Push کردن» در گیت هاب، به نحوه انتقال Commit‌ها از «مخزن» (Repository) محلی به مخزنِ راهِ دور اشاره می‌کند.

آموزش گیت  و گیت هاب در اندروید استودیو - Git و GitHub در Android Studio
فیلم آموزش گیت و گیت هاب در اندروید استودیو – Git و GitHub در Android Studio در تم آف

کلیک کنید

«ویژوال استدیو کُد» (Visual Studio Code | VSCode)، ابزاری مخصوص برنامه‌نویسی و به طور کلی یک «ویرایشگر کد» (Code Editor) محسوب می‌شود. این محصولِ مایکروسافت، محیطی را برای ما (توسعه‌دهندگان) فراهم می‌کند تا در آن کدهایمان را بنویسیم و اجرا یا دیباگ کنیم. همچنین ویژگی‌های دیگری نظیر «برجسته‌سازی نحو» (Syntax Highlighting)، تکمیل کدها (Code Completion) و ويژگی‌های مخصوص «Commit» را نیز ارائه می‌دهد.

در این بخش قرار است تا نحوه ساخت، «تکثیر» (Clone) و کار با مخازن گیت هاب در ویژوال استدیو کد، آشنا شویم. از آنجایی که در این پروژه قرار است نحوه Push کردن در گیت هاب را به وسیله VSCode آموزش دهیم، نیاز است ویژوال استدیو کد بر روی سیستم نصب باشد. برای این منظور می‌توان آخرین نسخه آن را از سایت رسمی‌ویژوال استدیو دریافت و نصب کرد.

ویژوال استدیو کد، گزینه‌ای با عنوان «Publish to GitHub»، برای ساخت مخازنی روی گیت هاب دارد، برای زمانی که مخزن گیت از قبل موجود نیست. بری انتشار از ویژوال استدیو کد به گیت هاب، لازم است تا پروژه خود را «به صورت محلی» (Locally) بسازیم و فایل README.md

  را به آن اضافه کنیم. پس از آن، کلیدهای ترکیبی Ctrl + Shift + P

  روی ویندوز، یا  Command + Shift + P

  (برای کاربران Mac) را می‌فشاریم.

create github vscode

در مرحله بعد، لازم است تا «خصوصی» (Private) یا «عمومی» (Public) بودن مخزن را مشخص کنیم.

create github vscode 2

از «پنل کنترل منبع» (Source Control Panel)، «Stage» و «Commit» مربوط به تغییرات را انجام می‌دهیم.

create github vscode 3

پس از «Push» کردن و انتشار تغییرات (Publish)، مخزن ایجاد شده VSCode، می‌بایست روی «GitHub» موجود باشد.

create github vscode 4

چگونه Commit را به گیت هاب Push کنیم؟

قدم سوم، این است که Commit را به گیت هاب Push کنیم. برای این کار، کافی است تا روی علامت «۳ نقطه» (…) کلیک و گزینه «Push» را انتخاب کنیم.

commit 3

پس از انجام این کار به مخزن گیت هاب بر می‌گردیم. حال، خواهیم دید که فایل .gitignore

، به گیت هاب «Push» شده است و پیامی که برای «Commit» در نظر گرفتیم، درست در کنار آن نمایش داده شده است.

commit 4

همان‌طور که می‌بینید، به دلیل افزودن فایل .gitignore

، فایل README.md

 در کامیت اولیه باقی مانده و فایل فضایِ کاری، به گیت هاب «Push» نشده است.

نحوه Push کردن کدها به گیت هاب با VSCode چگونه است؟

برای «Push» کردن کدهایمان در گیت هاب با استفاده از ویژوال استدیو کد، می‌توانیم از «ویژگی داخلیِ کنترل سورس کد» (built-in Source Control feature)، استفاده کنیم. برای این منظور، ابتدا، یک مخزن گیت را در پوشه محلی پروژه راه‌اندازی می‌کنیم. سپس، با انتخاب آیکن «Source Control» در سمت چپ پنجره VS Code، تغییرات صورت گرفته روی فایل‌هایمان را در نمای Source Control می‌بینیم.

پس از اینکه توضیحی برای «Commit» وارد کردیم، با کلیک روی علامت «تیک»، تغییراتمان «Commit» می‌شود. در مرحله بعد، از منوی ۳ نقطه، گزینه «Push» را انتخاب می‌کنیم تا تغییرات صورت گرفته را به مخزن گیت هاب راه دور خود منتقل کنیم. در این مرحله، ممکن است نیاز به احراز هویت با حساب گیت هاب داشته باشیم (اگر پیش از این انجام نشده باشد). با انجام این مراحل، تغییرات ایجاد شده، باید در مخزن گیت هاب ما قابل مشاهده باشد.

Fork در گیت هاب چیست ؟

در این قسمت می‌خواهیم مفهوم فورک کردن یا منشعب شدن یا «چند شاخه شدن» (Forking) را با هم یاد بگیریم. «Fork» کردن مخزن، به این معنی است که یک کپی از مخزن روی سرویس میزبانی گیت (مانند گیت هاب، Gitlab و Bitbucket)، بدون ایجاد پیوندی به آن بسازیم.

آموزش گیت Git – تکمیلی
فیلم آموزش گیت Git – تکمیلی در تم آف

کلیک کنید

هر کسی می‌تواند یک مخزن عمومی‌ را فورک کند. هنگام فورک کردن، در حقیقت یک کپی مستقل و جدید از مخزن مورد نظر (مشابه نسخه اصلی) ایجاد می‌کنیم. هنگامی که مخزنی را «Fork»‌ می‌کنیم، کنترل کاملی بر آن خواهیم داشت. یعنی می‌توانیم آن را «Clone» یا تغییرات انجام شده در «Fork» را «Commit» و «Push» کنیم. با این حال این اجازه را نداریم تا بدون «درخواست ادغام» (Merge Request) به مخزن اصلی «Commit» کنیم.

عمل Forking اغلب برای اجرای تست‌ها، بدون اینکه خطر تأثیرگذاری بر مخزن اصلی وجود داشته باشد یا هنگام همکاری (مشارکت) با یک پروژه «منبع آزاد» (Open-Source) استفاده می‌شود. تغییرات صورت گرفته در «Fork»‌ با استفاده از درخواست‌های واکشی (Pull Requests) ارسال می‌شود.

Fork کردن مخزن چگونه است؟

اولین قدم برای ایجاد یک درخواست کشش، Fork کردن مخزن است. فورک، یک کپی از یک مخزن است که به ما امکان می‌دهد بدون تأثیر بر روی مخزن اصلی، تغییراتی را ازنمونه‌ای از آن ایجاد کنیم. درخواست واکشی برای ارسال تغییرات ایجاد شده در فورک استفاده می‌شود تا بتوانند مخزن اصلی را تغییر دهند (اصلاح کنند). برای fork کردن یک مخزن، روی «Fork» در سمت راست و بالای مخزنی که می‌خواهید تغییراتی در آن ایجاد کنید، کلیک کنید.

fork در گیت هاب

حالا روی دکمه سبز رنگ «Create Fork» کلیک می‌کنیم.

forks and pull 3

تا این مرحله، همان‌طور که مشاهده می‌کنید، یک «انشعاب» (Fork) ایجاد کردیم و اصطلاحاٌ دارنده آن انشعاب محسوب می‌شویم.

کامیت کردن تغییر در fork چگونه است؟

به منظور Commit کردن تغییرات صورت گرفته در Fork، می‌بایست مخزن کلون شده را در ویژوال استودیو کد باز کنیم. این مخزن، مانند تصویری که در ادامه آمده است، می‌بایست کاملا در زیر ریشه باشد.

کامیت کردن تغییر در fork

پس از آن، فایل README.md را اصلاح و آن را ذخیره می‌کنیم.

کامیت کردن تغییر در fork

با مراجعه به زبانه «Source Control» در ویژوال استودیو کد، می‌توانیم مطمئن شویم که تغییر ما برای «committ» آماده است. روی علامت «+» کلیک می‌کنیم تا تغییرات، مرحله‌بندی اصطلاحاً «استیج» (Stage Changes) شوند.

کامیت کردن تغییر در fork

پس از افزودن توضیحی برای کامیت، روی دکمه «Commit» کلیک می‌کنیم.

کامیت کردن تغییر در fork

حالا بر روی گزینه «…»، کلیک و گزینه «Push» را انتخاب می‌کنیم.

کامیت کردن تغییر در fork

در این مرحله، ضمن توجه به تصویری که در ادامه آمده است، با رفرش کردن مخزن اصلی (در سمت چپ) و مخزن فورک شده (در سمت راست)، می‌توانیم شاهد باشیم که تغییر ما به فورک منتقل (Pushed) شده است.

کامیت کردن تغییر در fork

پس از ایجاد تغییرات در Fork، می‌توانیم با ایجاد یک «درخواست واکشی» (Pull Request) در گیت هاب، صاحب مخزن اصلی را مطلع کنیم تا تغییرات صورت گرفته را یکپارچه یا «ادغام» (Merge) کند. برای این منظور می‌بایست در مخزن فورک شده گیت هاب، زبانه «Pull Requests» را انتخاب کنیم.

درخواست pull

سپس، بر روی دکمه سبز رنگ «New pull request» کلیک می‌کنیم.

درخواست pull

در صفحه بعدی، امکان مقایسه تغییرات ایجاد شده در «Fork» نسبت به مخزن اصلی، فراهم شده است. در صورتی که مشکلی وجود نداشته باشد، باید پیامِ تیک خورده «Able to Merge» (قابل ادغام بودن) را ببینیم. در پایین صفحه، علائم «+»، تغییرات صورت گرفته را مشخص کرده است.

مقایسه تغییرات ایجاد شده در «Fork» نسبت به مخزن اصلی

روی دکمه «Create Pull Request» کلیک می‌کنیم.

ایجاد pull request

در این صفحه توضیحی را برای تغییرات صورت گرفته وارد و مجدداً روی دکمه «Create pull request» کلیک می‌کنیم.

درخواست Pull

ایجاد درخواست Pull همین‌جا با موفقیت به پایان رسید. اکنون می‌خواهیم مخزن فورک شده را در رایانه محلی خود کلون کنیم. پیش از آن مروری بر مفهوم «Clone» در گیت خواهیم داشت.

Clone در گیت چیست ؟

همان‌طور که پیش‌تر بیان شد، «Cloning» در گیت، عملیاتی است که برای ایجاد کپی از مخزن مورد نظر انجام می‌شود. مخزن موردنظر می‌تواند «راه دور» (Remote) یا «محلی» (Local) باشد.

با کلون کردن مخزن راه دور می توانیم نسخه‌ای محلی را در سیستم خود داشته باشیم. همچنین، می‌توانید بین دو مکان همگام‌سازی کنید.

Clone در گیت هاب

git clone

 ، یکی از دستورات خط فرمان است که برای ایجاد کپی محلی از یک مخزن راه دور استفاده می‌شود و از طریق یک URL راه دور به مخزن دسترسی پیدا می‌کند.

معمولاً مخزن اصلی روی یک سرور راه دور، اغلب سرویس Git مانند GitHub ،Bitbucket یا GitLab قرار دارد.

$ git clone 

در این قسمت از مطلب «گیت هاب چیست»، مراحل انجام «Clone» را از طریق گیت هاب و ویژوال استودیو کد و همچنین از طریق سیستم عامل، بیان می‌کنیم که در ادامه تشریح شده‌اند. برای کلون کردن مخزن در گیت هاب، روی دکمه سبز رنگ «Code» کلیک و آدرس «https URL» را کپی می‌کنیم.

کلون مخزن گیت

اگر کاربر سیستم عامل Mac هستید، کلیدهای ترکیبی Command + Shift + P

  را فشرده و گزینه «Git Clone» را انتخاب می‌کنیم. (کاربران ویندوز می‌توانند از کلید Ctrl به جای Command استفاده کنند)

کلون مخزن گیت در vscode

سپس، URL کلون که از گیت هاب کپی کردیم را در اینجا «الصاق» (Paste) می‌کنیم.

کلون مخزن گیت در vscode

اکنون یک نسخه محلی از Fork را در اختیار داریم.

کلون مخزن گیت در vscode

در ویندوز، می‌بایست «Git Bash» را باز و از دستور git clone

 به صورتی که در ادامه آمده است، استفاده شود.

$ git clone 

چگونه مخزن خود را در ویژوال استدیو کد Clone کنیم؟

اکنون زمان آن رسیده است که مخزن ساخته شده را با استفاده از VSCode تکثیر یا Clone کنیم. برای این منظور، می‌بایست آدرس URL مرتبط به مخزن خود را در گیت هاب کپی و مخزن را Clone کنیم. پس به مخزن گیت هاب می‌رویم و URL را کپی می‌کنیم.

کلون مخزن گیت هاب

در ویژوال استدیو کد، کلیدهای ترکیبی Ctrl + Shift + P

  (روی ویندوز)، یا  Command + Shift + P

  (برای کاربران Mac) را می‌فشاریم. حالا Git: Clone

  را تایپ می‌کنیم.

کلون مخزن گیت هاب

URL که در محله قبل کپی کردیم را در اینجا الصاق می‌کنیم.

کلون مخزن گیت هاب

مکان مخزن روی سیستم، یعنی جایی که مایلیم تا فایل مورد نظر تکثیر شود را انتخاب می‌کنیم. (به طور مثال پوشه‌ای روی دسکتاپ)

کلون مخزن گیت هاب

پنجره کوچکی در سمت راست و پایین صفحه نمایش ظاهر می‌شود، با این پیام که «آیا می‌خواهید مخزن کلون شده را باز کنید»، که ما Open

 را انتخاب می‌کنیم.

کلون مخزن گیت هاب

حالا با رفتن به پوشه پروژه، مشاهده می‌کنیم که مخزن مورد نظر، کِلون شده است. اگر در مرحله قبلی و زمانی‌که از شما سوال شد که «می‌خواهید مخزن را باز کنید»، پروژه جدید ایجاد شده را در VSCode باز نکرده‌اید، حالا می‌تولانید این کار را انجام دهید. از منوی «File»، گزینه «Open» را انتخاب کنید. به محل ذخیره مخزن کِلون شده بروید و روی دکمه «Open» کلیک کنید.

کلون مخزن گیت هاب

راه اندازی فایل Gitignore چگونه است؟

هنگامی که تغییری را روی گیت هاب، «Commit» می‌کنیم، ممکن است بخواهیم برخی موارد را از این «Commit» استثنا کنیم. به‌ عنوان مثال، ممکن است بخواهید مانع از Commit کردن مواردی مانند «اطلاعات کاربری» (Credentials) حساس (به منظور اهداف امنیتی) یا موارد دیگری مانند فضای‌ِکاری VS Code (فایل‌هایی که ویژوال استدیو کد به پروژه اضافه کرده است) شوید. حتی گاهی اوقات مواردی وجود دارند که شما نمی‌خواهید کامیت کنید، زیرا آنقدری اهمیت ندارند که بخواهید سابقه «Commit» خود را شلوغ کنید.

برای انجام این کار، باید یک فایل .gitignore

شامل قوانینی برای مواردی ایجاد کنیم که می‌خواهیم از کامیت‌ها حذف شوند. .gitignore

، در حقیقت، فایلی متنی است که به Git می‌گوید کدام یک از فایل‌ها یا پوشه‌های پروژه را باید نادیده بگیرد.

برای نصب فایل .gitignore

با استفاده از ویژوال استدیو کد، گزینه «New File» را از منوی «File» انتخاب یا روی آیکن «+» در پنل Explorer کلیک می‌کنیم.

فایل gitignore

در این فایل جدید، تمام فایل‌ها و پوشه‌هایی که مایل هستید تا نادیده گرفته شوند را اضافه کنید. سپس فایل را به صورت «متنی» و با نام .gitignore

، از طریق ویژوال استدیو کد ذخیره کنید.

ذخیره فایل gitignore

اگر نمی‌دانید که چه مواردی را به این فایل اضافه کنید، می‌توانید از این قالب، استفاده کنید که نمونه .gitignore

برای پایتون را نشان می‌دهد. توجه داشته باشید که لازم است فایل را با توجه به نیازهای خود به‌روز کنید. حالا، لازم است تا فایل .gitignore

را ذخیره کنیم. برای این منظور، می‌توانیم از کلیدهای ترکیبی CTRL + S

 (روی ویندوز)، یا Command + S

 (روی Mac) استفاده یا اینکه از منوی «File» گزینه «Save» را انتخاب کنیم.

«فضاهای کاری» (Workspaces) در ویژوال استدیو کد، قابلیت بسیار مفیدی محسوب می‌شوند، این فضاها می‌توانند تنظیمات خاص خود را داشته باشند و پروژه‌هایمان را به گونه‌ای از هم جدا کنند که «Commit» در یک پروژه بر پروژه‌های دیگر، تأثیری نداشته باشد.

برای اینکه پیکربندی فعلی به عنوان «فضای کاری» ذخیره شود،‌ لازم است تا از منوی «File»، گزینه «Save Workspace as»، سپس، پوشه‌ای که در حال حاضر روی آن کار می‌کنیم را انتخاب کنیم. همچنین لازم است تا نامی را به آن اختصاص دهیم. در این مورد، نام فضای کاری می‌تواند همان نام مخزن هم باشد.

فضای کاری در ویژوال استدیو کد

در حال حاضر، می‌توانید فضای کاری ساخته شده در ویژوال استدیو کد را ملاحضه کنید. در مواقع بعدی، به منظور باز کردن این فضای کاری، کافی است تا از منوی «File» گزینه «Open Workspace…‎» را انتخاب کنیم.

فضای کاری ساخته شده در ویژوال استدیو کد

Fetch در گیت هاب چیست ؟

دستور git fetch

 ، برای بیرون کشیدن (pull) به‌روز‌رسانی‌ها از شاخه‌های ردیابیِ راه دور (Remote-Tracking) مورد استفاده قرار می‌گیرد. به علاوه، می‌توانیم به‌روزرسانی‌های «ارسال شده» (Pushed) به شعبه‌های راه دور را در سیستم محلی را دریافت کنیم.

آموزش گیت  و گیت هاب در اندروید استودیو - Git و GitHub در Android Studio
فیلم آموزش گیت و گیت هاب در اندروید استودیو – Git و GitHub در Android Studio در تم آف

کلیک کنید

همان‌طور که می‌دانیم، شاخه نسخه‌ای از کد اصلی مخازن ما محسوب می‌شود، بنابراین شاخه‌های ردیابی از راه دور شاخه‌هایی هستند که برای دریافت و ارسال (pull and push) از مخزن راه دور راه‌اندازی شده‌اند.

Fetch در گیت هاب

چگونه مخزن گیت را Fetch کنیم؟

می‌توانیم از دستور git fetch

 (با آرگومان‌های متعددی که دارد) برای واکشی داده‌های مشخصی استفاده کنیم. برای درک کاربردهای دستور fetch، سناریوهایی در ادامه بیان شده است که با هم مرور می‌کنیم. سناریو اول به منظور واکشی مخزن راه دور است. ما می‌توانیم کل مخزن را با کمک دستور «fetch» از آدرس URL مخزن، واکشی کنیم. شکل کلی این دستور و خروجی آن پس از اجرا، در ادامه آمده است.

$ git fetch 

در ادامه، اجرای دستور «Fetch» روی آدرس مشخصی را مشاهده می‌کنید.

نمونه ای واکشی در گیت

در خروجی بالا، مخزن کامل از یک URL راه دور «واکشی» (fetched) شده است. سناریوی دوم، بیان‌گر واکشی شاخه مشخصی است. ما می‌توانیم شاخه‌ای خاص را از مخزن مورد نظر واکشی کنیم. در ادامه، شکل کلی دستور را مشاهده می‌کنید.

$ git fetch 

در ادامه، اجرای دستور فوق و واکشی شاخه‌ «test» از یک URL راه دور نشان داده شده است.

نمونه‌ای از fetch در گیت

سناریوی سوم، واکشی همه شاخه‌ها به طور همزمان (Simultaneously) را بیان می‌کند. دستور git fetch

همچنین این امکان را برای ما فراهم می‌کند تا همه شاخه‌ها را به طور همزمان از مخزن راه دور واکشی کنیم. در ادامه، کد مربوط به این مورد آورده شده است.

$ git fetch -all

همان‌طور که در تصویر زیر مشخص است، با اجرای دستور فوق، روی مخزن «Git-Example»، تمام شاخه‌ها را واکشی کرده‌ایم.

واکشی تمام شاخه ها از مخزن راه دور

سناریوی چهارم، «همگام‌سازی» (Synchronize) مخزن محلی را بیان می‌کند. فرض می‌کنیم، عضوی از تیم، چندین ویژگی جدید را به مخزن راه دور ما اضافه کرده است. بنابراین، برای افزودن این به روز‌رسانی‌ها به مخزن محلی خود، می‌توانیم از دستور git fetch

 استفاده کنیم که شکل کلی استفاده از آن در ادامه نشان داده شده است.

$ git fetch origin

اجرای دستور بالا، ویژگی‌های جدید موجود در مخزن راه دور را به سیستم محلی‌مان اضافه کرده است (به‌روز شده است). در این خروجی، شاخه «test2» و اشیاء آن، به مخزن محلی اضافه می‌شوند.

git terminology 14

واکشی گیت می‌تواند از یک مخزن با استفاده از نام یا URL آن، یا از چندین مخزن به طور همزمان انجام شود. به عبارت دیگر، می‌توان آن را نسخه‌ای ایمن از دستور git pull

 در نظر گرفت.

تفاوت بین git fetch و git pull در گیت هاب چیست ؟

برای درک تفاوت بین fetch

 و pull

، لازم است تا شباهت‌های میان این ۲ دستور را بدانیم. هر ۲ دستور، به منظور دانلود داده‌ها از مخزن راه دور استفاده می‌شوند، اما عملکرد متفاوتی نسبت به هم دارند. زمانی‌که یک git pull

 انجام می‌دهید، تمام تغییرات را از مخزن راه دور یا مرکزی دریافت می‌کند و آن را در اختیار شعبه مربوط به ما در مخزن محلی‌مان قرار می‌دهد. هنگامی‌که واکشی git

 را انجام می‌دهید، تمام تغییرات را از مخزن راه دور دریافت می‌کند و آن را در شاخه‌ای جداگانه در مخزن محلی ما ذخیره می‌کند. می‌توانیم با ادغام آن، تغییرات را در شاخه‌های مربوط به خود منعکس کنیم. بنابراین، می‌توان آن را به صورتی که در ادامه آمده است، بیان کرد.

git pull = git fetch + git merge

 در ادامه، برخی از تفاوت‌های کلیدی، بین عملیات «git pull»‌ و «git fetch» تشریح شده است.

git pull git fetch
دستور «pullgit » به منظور به‌روز‌رسانی شاخه «HEAD» فعلی شما، با آخرین تغییرات از سرور راه دور، مورد استفاده قرار می‌گیرد. دستور «fetchgit »‌، داده‌های جدید را از مخزن راه دور دانلود می‌کند.
داده‌های جدید را دانلود می‌کند و آن‌ها را به طور مستقیم در فایل‌های «کپی» فعلی جای می‌دهد (یکپارچه می‌کند) . برای دریافت نمای جدیدی از رخدادهای مخزن راه دور، مورد استفاده قرار می‌گیرد.
Pull داده‌ها را دانلود کرده و با فایل کاری فعلی یکپارچه می‌کند. داده‌ها‌ را هرگز دستکاری یا خراب نمی‌کند.
در این دستور، احتمال وقوع «تضاد ادغام» (Merge Conflict) وجود دارد. کدهایمان را از ناسازگاری‌های عملیات «ادغام» محافظت می‌کند.
اگر پیش از این مخزن دیگری را pull کرده‌اید، استفاده از دستور «git pull» خیلی مناسب نیست. توصیه می‌شود از دستور «fetchgit » با دستور «fetch» در مخزنی واکشی شده (pulled) استفاده کنید.

Cherry Picking در گیت چیست؟

Cherry Picking در گیت، به این معنی است که برخی از کامیت‌های یک شاخه را به شاخه‌ای دیگر، اعمال کنیم.

آموزش گیت Git – تکمیلی
فیلم آموزش گیت Git – تکمیلی در تم آف

کلیک کنید

اگر موردی پیش آمد که در پروژه مرتکب اشتباهی شدیم یا تغییری را به شعبه نادرستی کامیت کردیم و نمی‌خواهیم کل شعبه را ادغام کنیم، می‌توانیم کامیت را برگردانیم و آن را در شاخه دیگری اصطلاحاً «cherry-pick» کنیم.

cherry pick در گیت

نحوه استفاده از دستور «cherry-pick»، در ادامه آمده است.

$ git cherry-pick 

موارد استفاده از cherry-pick کدام اند؟

  • cherry-pick، ابزار مفیدی برای همکاری تیمی‌ (Team Collaboration) محسوب می‌شود.
  • در مواردی که باگ‌ها را قرار است رفع کنیم، استفاده از این ابزار ضروری است. زیرا باگ‌ها با کامیت‌های خود در شاخه «توسعه» رفع و آزمایش می‌شوند،.
  • اغلب برای بازگرداندن تغییرات و بازیابی commit‌های از دست رفته استفاده می‌شود. از git cherry-pick برای جلوگیری از تداخل‌های غیرضروری به جای تکیه بر روش‌های جایگزین استفاده کنید.
  • زمانی که ادغام کامل شاخه به دلیل نسخه‌های ناسازگار در شاخه‌های مختلف امکان‌پذیر نباشد، ابزار مفیدی است.
  • cherry-pick برای دسترسی به تغییرات ایجاد شده در زیرشاخه، بدون تغییر شاخه استفاده می‌شود.

Checkout در گیت چیست؟

در گیت، اصطلاح «چک‌اوت» یا «بیرون رفتن» (Checkout)، برای عمل سوئیچینگ بین نسخه‌های مختلف یک موجودیت استفاده می‌شود. با استفاده از دستور git checkout

 ، می‌توانیم بین شاخه‌های موجود در یک مخزن، جابجا شویم.

آموزش ساخت پروفایل حرفه ای گیت هاب GitHub و نکات مهم در پروژه ها
فیلم آموزش ساخت پروفایل حرفه ای گیت هاب GitHub و نکات مهم در پروژه ها در تم آف

کلیک کنید

لازم به ذکر است که هنگام جابجایی بین شاخه‌ها، می‌بایست مراقب فایل‌های مرحله‌بندی شده (Staged) و کامیت‌های خود باشیم. دستور git checkout

، بر روی ۳ موجودیت مختلف که فایل‌ها، کامیت‌ها و شاخه‌ها هستند، عمل می‌کند. از آنجایی که این دستور گزینه «لغو» (Undo) و برگشت به حالت قبل را ندارد، استفاده از آن باید با احتیاط همراه باشد.

cherry pick در گیت

این دستور، شاخه‌ها را بررسی و فایل‌های موجود در پوشه کاری را به‌روزرسانی می‌کند تا با نسخه موجود در آن شاخه مطابقت داشته باشد. سپس به‌روزرسانی‌ها را به گیت ارسال می‌کند تا تمام کامیت‌های جدید، در آن شاخه ذخیره شوند.

عملیات موجود در چک‌اوت کدامند؟

ما می‌توانیم عملیات متعددی را با استفاده از دستور git checkout

انجام دهیم، مانند سوئیچ به شاخه‌ای خاص، ایجاد شاخه‌ای جدید، Checkout شاخه راه دور و غیره. این دستور را می‌توان با git branch

ترکیب کرد. با اجرای دستور git branch

می‌توانیم فهرستی از شاخه‌های موجود را نمایش بدهیم و به شاخه‌ای خاص منتقل شویم. برای نمایش شاخه‌ی موجود در مخزن، از این دستور به شکلی که در ادامه امده است، استفاده می‌کنیم.

$ git branch

اکنون که فهرستی از شعب موجود را داریم، برای جابجایی بین شاخه‌ها از دستور checkout branch

 به شکلی که در ادامه آمده است، استفاده می‌کنیم.

$ git checkout 

همان‌طوری که در خروجی مشخص است، در این مثال از شاخه اصلی به شاخه «testbranch» منتقل شدیم.

checkout در گیت هاب

با به کارگیری پرچم «b»، همان‌طوری که در ادامه آمده است، می‌توانیم شاخه‌ای جدید را ایجاد کنیم و به طور همزمان به آن منتقل شویم (سوئیچ کنیم).

$ git checkout -b 

در حقیقت، استفاده از این پرچم مشابه این است که دستور git branch new-branch

، قبل از اجرای git checkout new-branch

انجام شده است.

Staging در گیت هاب چیست ؟

یکی از امکاناتی که گیت در اختیار ما قرار می‌دهد، ناحیه‌ اِستِیجنیگ یا «مرحله‌بندی» (Staging) نام دارد که تغییرات صورت گرفته روی فایل‌ها، که هنوز «ثبت» (Commit) نشده است را ذخیره می‌کند. این ویژگی به ما امکان می‌دهد تا با انجام تغییرات، آن‌ها را در Commitهایی کوچک‌تر ثبت کنیم.

آموزش گیت  و گیت هاب در اندروید استودیو - Git و GitHub در Android Studio
فیلم آموزش گیت و گیت هاب در اندروید استودیو – Git و GitHub در Android Studio در تم آف

کلیک کنید

با استفاده از «مرحله‌بندی» می‌توانیم تغییرات را در فایلی روی کامپیوتر ذخیره کنیم. اما باید بدانیم، در صورتی که «Commit» نکنیم، گیت، نسخه‌ای از آن را نگه نمی‌دارد (ذخیره نمی‌کند). پیش از اینکه فایلی را با گیت «Commit» کنیم (ثبت و ذخیره کنیم)، نیاز است تا تغییرات، «Stage» شده باشند. پس از آن، شرایط برای «Commit» کردن مهیا است. به این ترتیب می‌توانیم تغییرات متعددی را در تنها یک کامیت، «Stage» کنیم.

staging در گیت
«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید».

Staging در ترمینال و VSCode چگونه انجام می شود؟

اگر برنامه‌نویسی را در محیط‌هایی (IDE) مانند «VSCode» انجام می‌دهید، بخشی به نام «پنل کنترل منبع» (Source Control Panel) در اختیار خواهیم داشت که عمل ادغام و یکپارچه‌سازی با Git را آسان می‌کند. وضعیت مربوط به «مرحله‌بندی» تغییرات (اینکه Stage شده‌اند یا خیر) یا اصطلاحاً وضعیت «ردیابی»، در این پنل قابل مشاهده است. اکنون با انجام «Commit»، تنها تغییراتی ثبت خواهند شد که «Stage» شده‌اند.

مرحله بندی در گیت هاب

چگونه تغییرات خود را Stage کنیم؟

در این قسمت به بیان برخی از مراحل «Staging» پرداخته‌ایم که در ادامه، تشریح شده‌اند.

راه اندازی مخزن گیت را به وسیله «Git Init» چگونه است؟

برای نشان دادن عملکرد «مرحله‌بندی» یا «Staging»، با یک پروژه خالی شروع ‌می‌کنیم.

استیج تغییرات در گیت

با استفاده از دستور git init

 ، مخزن «git» را راه‌اندازی می‌کنیم.

$ git init

دستور فوق، یک مخزن git مخفی (پوشه‌ای به نام .git

در ریشه پروژه) را ایجاد می‌کند.

استیج تغییرات در گیت

تا این قسمت از کار، «تغییری» در پروژه رخ نداده است. بنابراین فایل جدیدی می‌سازیم.

$ touch new-file.txt
استیج تغییرات در گیت

روش افزودن فایل به staging در گیت هاب چیست‌ ؟

با استفاده از دستور Git add، فایلی را به «مرحله‌بندی» اضافه می‌کنیم. دستور git add

، این امکان را برای ما فراهم می‌کند که فایل‌هایی که باید «Commit» شوند را «Stage» کنیم. اگر از VSCode استفاده می‌کنید، می‌توانید در سورس کنترل پنل، مشاهده کنید که «تغییری» ایجاد شده است، اما هنوز هیچ «استیجی» نداریم.

استیج تغییرات در گیت

با استفاده از علامت «+» در کنترل پنل منبع، می‌توانیم تغییر موجود را «Stage» کنیم.

راه اندازی مخزن گیت را به وسیله «Git Init» چگونه است؟

ولی در اینجا، با به کارگیری دستور «git add» در ترمینال، این کار را انجام می‌دهیم. برای «Stage» فایل در Git، از دستور git add

، به صورتی که در ادامه، آمده است، استفاده می‌کنیم.

$ git add new-file.txt

و حالا مشاهده می‌کنیم که «Stage» مورد نظر صورت گرفته است.

Git Staging vs 6

روش نمایش فایل‌های Stage شده با دستور Git Status در گیت هاب چیست ؟

دستور git status

 ، فایل‌های موجود در «ناحیه Staging» را نمایش می‌دهد.

$ git status

همان‌طور که در تصویر مشاهده می‌شود، تغییرات مربوط به stage قابل رویت است. اگر هیچ فایل «Stage شده» یا «تغییر‌ یافته‌ای» وجود نداشته باشد، خروجی، مشابه اما متفاوت با تصویر فوق است.

Git Staging vs 7 1

اجازه دهید فایل جدیدی بسازیم و آن را «Stage» نکنیم.

$ touch new-file2.txt
$ git status

فایل‌های «Untracked» بیان‌گر همان فایل‌های «Unstaged» هستند.

Git Staging vs 8 1

اگر تغییرات جدید و تغییرات «Stage» نشده‌ای وجود نداشته باشد، خروجی کوتاه‌تری خواهیم داشت.

$ git status
 
On branch master
 
No commits yet
 
nothing to commit (create/copy files and use "git add" to track)

چه تغییراتی در فایل رخ داده است؟

با استفاده از دستور git diff

، می‌توانیم ببینیم چه چیزی در فایل‌ها تغییر کرده است. این دستور، فایل فعلی را با آخرین نسخه ذخیره شده، مقایسه می‌کند. «Git diff»، در حقیقت فرمتی نمایشی است که تفاوت بین گروه‌های فایلی را نشان می‌دهد. در‌ صورتی که دستور git diff

را به تنهایی و بدون هیچ چیزی بعد از آن به کار ببریم، تمام تغییراتی که در مخزن وجود دارد را به شما نشان می‌دهد.

$ git diff

همچنین می‌توانید از git diff

، همراه با نام دایرکتوری استفاده کنید تا تمام تغییراتِ ایجاد شده در دایرکتوری را به ما نشان دهد.

$ git diff changed-file.txt

اگر از git diff

همراه با نام فایل استفاده کنید، تمام تغییرات ایجاد شده در فایل به شما نمایش داده می‌شود.

$ git diff changed-file.txt

کامیت کردن فایل‌های Stage شده چگونه است؟

حال اگر قصد «Commit» را داشته باشیم. تنها فایل(های) «Stage شده»، کامیت می‌شود. در مثالی که در ادامه آورده شده است، فقط new-file.txt

 ، کامیت خواهد شد.

$ git commit -m "only committing new-file.txt"
کامیت کردن فایل‌های Stage شده

در ادامه، خروجی دستور فوق را مشاهده می‌کنید.

کامیت کردن فایل‌های Stage شده

سوالات متداول

در این بخش از مطلب «گیت هاب چیست»، برخی از پرسش‌های پرتکرار کاربران، در رابطه با موضوع «گیت هاب چیست» را به همراه پاسخ‌های مرتبط، بیان می‌کنیم.

مجموعه آموزش برنامه‌نویسی
فیلم مجموعه آموزش برنامه‌نویسی در تم آف

کلیک کنید

چرا از گیت هاب استفاده می‌کنیم؟

گیت هاب، راه‌حلی فوق‌العاده را برای مشارکت و همکاری در فرایند ایجاد و تکمیل پروژه‌‌ها در اختیار ما قرار می‌دهد. با استفاده از این ابزار، نسخه‌ای پشتیبان را از فایلی که روی آن کار می‌کنیم به طور دائمی، در اختیار خواهیم داشت. به این ترتیب، هیچوقت نسخه‌های پیشین پروژه‌هایمان را از دست نخواهیم داد. علاوه بر این، می‌توانیم با به کارگیری کدهای نوشته شده توسط سایر برنامه‌نویسان، پروژه‌های خود را سریع‌تر توسعه دهیم.

آیا گیت هاب برای افراد تازه کار گزینه مناسبی است؟

یادگیری و استفاده از گیت هاب برای برنامه‌نویسان تازه‌کار، کار سختی نیست. در حقیقت، برای یادگیری اینکه چگونه کدهایی را به گیت هاب «ارسال» (push) کنیم، کافی است با تعدادی از دستورات گیت هاب آشنایی داشته باشیم. اگر در حال حاضر با Git آشنایی دارید، یادگیری گیت هاب پیچیدگی چندانی ندارد، اما در غیر این صورت، یادگیری گیت هاب تلاش بیشتری را نیازمند خواهد بود.

آیا گیت هاب فقط مناسب برنامه نویسان است؟

خیر. افراد و تیم‌های مختلف، از گیت هاب برای پروژه‌های گوناگون خود استفاده می‌کنند. گیت هاب برای مدیریت تیم‌ها، اشتراک‌گذاری رزومه‌ها، یافتن پروژه‌های جدید، پیگیری کارها و سایر موارد، استفاده می‌شود.

طرز کار گیت هاب چیست ؟

گیت هاب، رابطی مبتنی بر وب است که از Git استفاده می‌کند. گفتیم که «گیت»، نرم‌افزار کنترل نسخه اوپن سورسی است که به چندین نفر اجازه می‌دهد به طور همزمان، تغییرات جداگانه‌ای را در پروژه، ایجاد کنند. گیت هاب، با فراهم کردن امکانِ همکاری به صورت بلادرنگ، تیم‌ها را تشویق می‌کند تا برای ساخت و ویرایش محتوای سایت خود با یکدیگر مشارکت و تعامل داشته باشند.

آیا استفاده از گیت هاب بدون کدنویسی ممکن است؟

گیت هاب، محصول و وب‌سایتی است که برای برنامه‌نویسان طراحی شده است تا به طور مشارکتی کدهای خود را بسازند. اما این بدان معنا نیست که برای استفاده از آن باید حتما برنامه‌نویس باشیم. می‌توانیم با «ردیابی نسخه مشارکتی»، پروژه (غیر برنامه‌نویسی) مخصوص به خود را بدون نوشتن حتی یک خط کد یا استفاده از خط فرمان، شروع کنیم.

تست کردن کدها در گیت هاب چگونه است؟

می‌توان با استفاده از «GitHub Actions»، پروژه‌های خود را به صورت خودکار «Build» و تست کرد.

آموزش گیت Git، گیت هاب و گیت لب (رایگان)
فیلم آموزش گیت Git، گیت هاب و گیت لب (رایگان) در تم آف

کلیک کنید

Pull Request در گیت هاب چیست ؟

درخواستی است که برای بررسی تغییرات مخزن ارسال می‌شود. به عبارت دیگر، زمانی که توسعه‌دهندگان آماده ادغام کدهای جدید در مخزن گیت هاب هستند، از آن استفاده می‌کنند.

درخواست Merge در گیت هاب چیست ؟

Merge تغییرات را در قالب یک درخت منسجم ادغام می‌کند. این کار تنها بخشی از آنچه به حساب می‌آید که طی عملیات Pull در گیت انجام می‌شود.

چند شاخه شدن مخزن در گیت هاب چیست ؟

فورک در حقیقت، رونوشتی از مخزن گیت هاب است که به وسیله ما کنترل می‌شود.

Clone مخزن در گیت هاب چیست ؟

نسخه محلی از مخزن میزبانی شده (مانند مخزنی در گیت هاب یا گیت لب) محسوب می‌شود.

تفاوت عمل Fork و Pull Request در گیت هاب چیست؟

«انشعاب» (Fork) رونوشتی از مخزن اصلی است که زیر نظر فرد مدیریت می‌شود. درخواست pull، درخواستی است که از جانب مالک مخزن و به منظور بررسی و ادغام تغییراتی که توسط ما صورت گرفته، در مخزن اصلی انجام می‌شود.

بستن درخواست واکشی در گیت هاب چیست ؟

گزینه «بستن درخواست واکشی» در گیت هاب، بدون اینکه ادغام شاخه مبدا در شاخه مقصد انجام شود، درخواست pull را می‌بندد.

سخن پایانی

در این مطلب از مجله تم آف، موضع «گیت هاب» و مفاهیمی مانند سیستم کنترل نسخه مورد بررسی قرار گرفت. همچنین، سعی کردیم تا حد امکان به طور جامع به این پرسش که «گیت هاب چیست»، پاسخ دهیم. همان‌طور که گفته شد، «Git» و «GitHub»، راه‌های سریع و ساده‌ای را برای ساخت و توسعه پروژه‌هایمان ارائه می‌دهند و استفاده از آن‌ها، مزایای زیادی را برای توسعه‌دهندگان به همراه دارد.

مجموعه آموزش برنامه‌نویسی
فیلم مجموعه آموزش برنامه‌نویسی در تم آف

کلیک کنید

GitHub به عنوان یکی از پراستفاده‌ترین پلتفرم‌ها در زمینه کنترل نسخه و مدیریت روند توسعه و ساخت پروژه‌ها محسوب می‌شود که از کدهایمان میزبانی می‌کند و این امکان را به ما می‌دهد تا از هر مکانی، روی پروژه‌هایمان به صورت تیمی، با دیگر برنامه‌نویسان، مشارکت داشته باشیم. با به کارگیری این ابزار، می‌توانیم روند تغییرات کدها را مشاهده و در صورت وجود خطا، منشأ آن را بیابیم. GitHub ویژگی‌های پیچیده زیادی را برای پروژهای تیمی و بزرگ به همراه دارد.

دانش بکارگیری گیت هاب در پروژه‌ها، مهارتی بسیار ارزشمند برای برنامه‌نویسان به شمار می‌رود. همچنین داشتن پروفایل GitHub خوب که مشارکت‌های مکرر و مداوم برنامه‌نویس را در طول سال، هم در پروژه‌های شخصی و هم در پروژه‌های دیگران نشان ‌‌می‌دهد، می‌تواند به عنوان نمونه‌کار در ورود به بازارِ کار یا ارتقاء وضعیت شغلی، بسیار مفید واقع شود. علاوه بر ویژگی‌های گفته شده در این مطلب، گیت هاب، پلتفرم و منبعی بسیار عالی برای یادگیری کدنویسی به حساب می‌آید و استفاده از آن تا حد زیادی به افزایش مهارت برنامه‌نویسی افراد کمک می‌کند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.