گیت و گیت هاب : قسمت 1 : معرفی گیت

اموزش گیت قسمت اول : معرفی گیتاموزش گیت و گیت هاب قسمت اول : معرفیفهرست مطالب:1- مقدمه2- گیت دقیقا چیست؟3- سیستم کنترل ورژن چیست؟4- تاریخچه گیت5- تفاوت گیت با گیت هاب چیست؟مقدمهبا سلام و خسته نباشید خدمت دوستان عزیزگیت و گیت هاب یکی از ابزار های بسیار بسیار ضروری و مورد نیاز برنامه نویسان هست که خیلی هامون یادگیری اصولی اون رو به تاخیر میندازیم و وقت انچنانی نمیزاریم براش، در صورتی که بنظرم باید قبل از عمیق شدن در برنامه نویسی گیت رو تا حد خوبی یاد بگیریم (البته اینم بگم که گیت فقط مختص برنامه نویس ها نیست و خیلی از افراد در مشاغل دیگه ازش استفاده میکنن مثل گرافیست ها و ...).خودم چند سالی هست که از گیت استفاده میکنم ولی تصمیم گرفتم گیت رو اصولی تر یاد بگیرم برای همین یک دوره اموزش git که در سایت Udemy جزو best seller ها شده رو دارم مشاهده میکنم و سعی میکنم چکیده مطالب مهم و ضروری رو یادداشت کنم.پیشنهاد خودم اینه که بجای خوندن مقالات من برید خود این دوره رو ببینید و یا رفرنس های انگلیسی رو بخونید :)) !! ولی برای کسایی که اول راه هستن و سختشونه میتونن از مقالات من استفاده کنن و امیدوارم که بدردشون بخورهلینک دوره در یودمی:https://www.udemy.com/course/git-and-github-bootcamp/لینک دانلود این دوره:https://downloadly.ir/elearning/video-tutorials/the-git-github-bootcamp-2/گیت دقیقا چیست؟گیت یک سیستم کنترل ورژن شناخته شده است که بعضی اوقات به اون vcs (مخفف version control system) هم میگن. گیت تنها سیستم کنترل ورژن یا همون vcs نیست بلکه محبوب ترین vcs در دنیاست.سیستم کنترل ورژن چیست؟ سیستم کنترل ورژن یا همان vcs نرم افزاری است که به ردیابی و مدیریت تغییرات مجموعه ای از فایل ها در طول زمان کمک می کند. به شرکت هایی مثل فیس بوک یا گوگل با پایگاه های کد عظیم، هزاران فایل و هزاران توسعه دهنده فکر کنید. همه این برنامه نویس ها به طور موازی کار می کنند و هر روز تغییراتی روی کد ها ایجاد میکنن. حالا فرض کنید اگه ابزار مثل گیت وجود نداشت این توسعه دهندگان چطور باید کد ها رو مدیریت میکردند، چطور باید تغییرات رو ردیابی میکردند و یا چطور میتونستن به طور موازی با هم کد بزنن و در نهایت کدهاشونو باهم ترکیب کنن و یا تغییرات رو لغو کنن و یا ...این مواردی که گفتم نقش یک سیستم کنترل ورژن مثل git هست. به طور کلی اکثر سیستم های کنترل ورژن قابلیت های زیر را در اختیار شما میزارن:بازدید مجدد نسخه‌های قبلی فایل‌ها مقایسه تغییرات ایجاد شده بین نسخه های مختلف و فایل های مختلفلغو و بازگردانی تغییرات (یا به اصطلاح همون undo کردن)اشتراک گذاری تغییرات با بقیه افراد و ...گیت این قابلیت ها و همچنین قابلیت های پیشرفته تر دیگه رو در اختیارتون قرار میده. این یک مقدمه کلی برای مفهوم سیستم کنترل ورژن بود که خدمتتون عرض کردم. Git تنها یکی از سیستم های کنترل ورژن هست که سالهاست وجود داره و مورد استفاده برنامه نویسان هست. شناخته شده ترین سیستم های کنترل ورژن شامل subversion، CVS و Mercurial و ... هستند که هیچ کدوم در حد و اندازه های گیت نیستن و سیستم کنترل ورژن گیت با اختلاف بین رقباش برندست !.همه این vcs ها اهداف مشابهی برای کمک به توسعه دهندگان یا کمک به کاربران برای ردیابی تغییرات پروژه ها در طول زمان دارند. اما vcs ها تفاوت های زیادی در سینتکس و نحوه ی دستیابی به قابلیت هایی که بالا گفتیم با همدیگه دارن. و اینم بگم خدمتتون که گیت کاملا رایگان و open source هست .وبسایت رسمی گیت:https://git-scm.com/تاریخچه gitموضوع اینه که لینوس توروالدز (خالق سیستم عامل لینوکس) و همکارانش زمانی که روی توسعه ی لینوکس کار میکردند تا سال 2005 از یک dvcs اختصاصی بنام BitKeeper (که یک سیستم مدیریت کد هست) استفاده میکردند تا اینکه در سال 2005 رابطه بین جامعه توسعه‌دهندگان هسته لینوکس و شرکت تجاری سازنده BitKeeper از بین رفت و وضعیت رایگان ابزار BitKeeper لغو شد. و همچنین اواخری که لینوس توروالدز و همکارانش از bitkeeper استفاده میکردن متوجه شدن که این ابزار تمام نیازهاشون رو برطرف نمیکنه و همین دو موضوع باعث شد که لینوس توروالدز سیستم کنترل ورژن اختصاصی خودش رو با کمک تجربه هایی که از BitKeeper کسب کرده بود به علاوه ی یک سری قابلیت های جدید بسازه . برخی از قابلیت های جدیدی که لینوس توروالدز در گیت لحاظ کرد عبارت اند از :سرعت بالاطراحی سادهپشتیبانی قوی از توسعه ی غیرخطی (توسعه روی هزاران شاخی به صورت موازی)یک سیستم توزیع شده کاملقادر به مدیریت پروژه های بزرگ مانند هسته لینوکس به طور موثر ( سرعت و اندازه داده)تفاوت گیت با گیت هاب چیست؟تفاوت گیت با گیت هابگیت با گیت هاب فرق میکنه، همونطور که بالا اشاره کردم گیت یک سیستم کنترل ورژن هست که روی کامپیوتر ها مثل لپتاپ، دسکتاپ و ... نصب و اجرا میشود. شما برای استفاده از گیت نیازی به اینترنت و ساخت حساب کاربری و لاگین کردن ندارید، فقط کافیه درصورتی که گیت روی سیستم شما نیست اون رو دانلود و نصب کنید و ازش استفاده کنید. و همونطور که هنگام استفاده از برنامه هایی مثل text editor ، برنامه های افیس مثل word و excel نیازی به اینترنت نیست برای استفاده از گیت هم نیازی به اینترنت و sign up ندارید.از اونطرف دیگه گیت هاب یک وب سرویس هست و کارش اینه که repository (ریپازیتوری یا به اصطلاح فارسی مخزن) های گیت رو در خودش ذخیره میکنه و یک هاستینگ و میزبانی هست برای پروژه های گیت. و این یک روش عالی برای ما برنامه نویسان هست که میتونیم پروژه های گیت خودمون رو داخل گیت هاب در اینترنت بارگذاری کنیم و با بقیه ی افراد به اشتراک بزاریم و کلی قابلیت دیگه بهمون میده که در مقاله های بعدی بهش اشاره میکنم.پس گیت هاب یک وبسایت هست که شما برای استفاده ازش باید دسترسی به اینترنت داشته باشید و یک حساب کاربری گیت هاب بسازید و بعد میتونید پروژه هاتون رو به صورت انلاین بارگزاری کنید و با بقیه ی افراد به اشتراک بزارید و یا میتونید پروژه های سایر افراد رو از گیت دریافت کنید و روی ماشین لوکال خودتون ازش استفاده کنید. پس گیت هاب یک شبکه ی اجتماعی برای به اشتراک گذاری پروژه هاتون هست و شما رو به سایر افردا و سایر پروژه ها connect میکنه.قسمت بعدی: نصب و کانفیگ گیت روی ویندوز و لینوکس