گیت ، گیتهاب و گیت لب

اوایلی که برنامه نویسی رو شروع کرده بودم مفهوم گیت رو با گیتهاب نمیدونستم و فکر میکردم که این دوتا یکی هستند. تو این مقاله میخواهم یه توضیح خیلی ساده در مورد گیت بدم. شاید باشن کسایی که تازه برنامه نویسی رو شروع کرده بودند و کار با GIT رو هنوز یاد نگرفته باشند.بهتره که گیت رو درست حسابی یاد بگیرید چون ابزار بسیار خوبی برای برنامه نویس هاست ( و به نظر شخصی خودم به درد هر کسی تو هر رشته ای میخوره )تو این مقاله میخوام توضیح بدم که گیت ، گیتهاب و گیتلب چی هستند و چه فرقی باهم دارند.گیت ، گیتهاب و گیت لبخوب اول از همه، گیت چیه ؟‌گیت رو کسی به وجود آورده که هسته لینوکس رو نوشته . بله جناب لینوس توروالدز . خوب گیت چی هست ؟گیت ابزاری است برای کنترل نسخه های یک فایل. مثلا شما میخوای یک تحقیق بنویسی و میای با نرم افزار Microsoft Office Word اون رو میسازی. وقتی که کارت به یه حدی رسید تصمیم میگیری که یه دور ویرایشش کنی و همزمان میخوای که نسخه اصلی رو داشته باشی.پس یه فایل دیگه مثلا به اسم myProject2.doc درست میکنی و کار ویرایش رو اونجا انجام میدی. وقتی که کارت تموم میشد حس میکنی که باید یه نسخه دیگه از کارت داشته باشی و اونو تحویل استادت بدی پس میای یه فایل دیگه به اسم projectFinal.doc درست میکنی. این یه مثال ساده ای بود که اکثر ماها باهاش درگیر هستیم. و برای انجام یه پروژه ساده چندین و چند فایل و پوشه درست میکنیم . کاری که گیت انجام میده همینه. میگه شما هر تغییری خواستی روی فایل اصلیت بده و هر چقدر خواستی نسخه های مختلف ازش درست کن . گیت همه این کارارو با همون یک فایل اصلی انجام میده و نیازی نیست که برای هر تغییری یک فایل جدید با اسم جدید درست کنید. چرا برنامه نویس ها از گیت استفاده میکنند ؟‌شما فرض کنید که برای ساختن یه فایل doc که توش قراره تحقیق دانشگاه رو انجام بدید چند تا فایل و نسخه مختلف ساختید . حالا یه برنامه نویس که همه کارش با تغییرات هست و ... باید چیکار کنه ؟‌همچنین اگه گیت نباشه چه جوری میخواهیم چند نفری روی پروژه ای کار کنیم ؟فرض کنید تو همون مثال تحقیق دانشگاه، همینجوریش هم چندین نسخه ازش دارید. حالا قرار شده که با همکلاسیتون یه بخش هاییش رو انجام بدید . واقعا مدیریت کردن این کار خیلی سخته ! همینجوریش چند تا نسخه از فایلتون دارین. فرض کنید همکلاسیتون هم چندین نسخه از فایل ها داشته باشه و ...یکم که بهش فکر کنید متوجه میشید خیلی دردسر داره تا همه چی درست شه!چه جوری گیت رو راه بندازیم ؟‌شما به سادگی میتونید گیت رو روی سیستم خودتون دانلود کنید و نصب کنید و راه بندازید. در این مورد مقاله های زیادی وجود داره. گیت توی دایرکتوری که پروژه شما وجود داره حضور پیدا میکنه و کنترل اوضاع رو در اختیار خودش میگیره.گیت محلی بعضی از شرکت ها هم به همین شکل از گیت استفاده میکنند. اما چون نیاز هست که همه بهش دسترسی داشته باشند میان و از یک سرور برای این کار استفاده میکنن. یه کامپیوتر ساده با مشخصات خیلی پایین هم میتونه به عنوان گیت سرورتون به کار بیاد.گیت ریموتگیت و گیت ریموت هاازون جایی که برای شرکت ها دسترسی به آخرین ورژن کدهایی که زدن مهمترین اولویت محسوب میشه و نمیشه همیشه به یه سرور محلی اعتماد کرد ، سرور گیت ریموت راه اندازی شده.اگه اون کامپیوتر محلی که ازش استفاده میکنید دچار مشکل بشه و یا دچار حادثه بشه ، مثلا آتش بگیره و ... همه کدهایی که داشتین از بین میره!اگه این سرور محلی به شکل یه سرور ریموت باشه و خارج از شرکت شما قرار گرفته باشه چی ؟‌بعله اینجا بود که سرویس هایی مثل گیت هاب و گیت لب و بیت باکت به وجود آمدند.این سرویس ها جدا از امکانات زیادی که به توسعه دهندگان ارائه میدند ، وظیفه نگهداری کدهای مارو دارند. بعد از ایجاد یک پروژه ، اون رو به گیت ریموت منتقل میکنند و سپس با دادن مجوزهای لازم به توسعه دهنده ها این اجازه رو میدند که از طریق یک لینک به پروژه دسترسی داشته باشند و بتونن پروژه رو روی سیستم خودشون دانلود کنند و داشته باشند. بعد از انجام تغییرات هم اون رو روی همون سرور ریموت ذخیره میکنند.انواع گیت ریموت هاخلاصهخیلی جاها دیدم و شنیدم و حتی خودم اوایل کارم درگیر این موضوع بودم که فرق ایناهارو نمیدونستمدرواقع گیت یه مفهوم کلی هست. یه ابزار قدرتمند هست که با یه سری دستورات و ... میشه نسخه های مختلف از یک فایل رو به راحتی مدیریت کرد. گیت هاب و گیت لب و ... هم سرویس های ریموت برای نگه داری پروژه های شمان. پروژه هایی که تو خودشتون از گیت استفاده میکنند.سایر مقاله های من در ویرگول: https://virgool.io/programmers-revolution/بهترین-تمرین-های-گیت-wgjeggzbq1gj https://virgool.io/@novonimo/مکمل-قردتمند-گیت-git-flow-ufhgxx6j6ah3 Contact With me:https://t.me/nimamohamadianhttps://www.facebook.com/nimamohamadian89https://twitter.com/Nima_Mohamadianhttps://www.linkedin.com/in/nima-mohamadian-57ba63123/