گیت (Git) نرم افزاری برای ردیابی تغییرات در هر مجموعهای از فایلها است که معمولاً برای هماهنگی بیشتر کارها بین برنامه نویسانی که به طور مشترک کد منبع را در طول توسعه نرم افزار توسعه میدهند، استفاده میشود. اهداف گیت شامل سرعتبخشی به فرآیندها، یکپارچگی دادهها و پشتیبانی از روندهای مختلف کار است.
گیت (GIT) در ابتدا به وسیله لینوس توروالدز در سال ۲۰۰۵ برای توسعه هسته لینوکس نوشته شد و سایر توسعه دهندگان کرنل در توسعه اولیه آن سهیم بودند. از سال ۲۰۰۵، Junio Hamano مدیر اصلی گیت و توسعه آن بوده است. مانند اکثر سیستمهای کنترل نسخه توزیع شده دیگر، برخلاف اکثر سیستمهای سرویس گیرنده سرور، هر دایرکتوری گیت در هر رایانه، یک پایگاه داده کامل با تواناییهای بینقص برای ردیابی نسخه فایلها، مستقل از دسترسی به شبکه یا یک سرور مرکزی است.
گیت یک نرم افزار رایگان و منبع باز است که تنها تحت مجوز GPL۲ توزیع شده است. گیت رایجترین سیستم کنترل نسخه است. در واقع وظیفه آن این است که تغییراتی را که در فایلها ایجاد میکنید ردیابی کند، بنابراین شما سابقهای از کارهای انجام شده دارید و میتوانید در صورت نیاز به بخشهای خاصی از پروژههای خود بازگردید و ان را مرور کنید. گیت همچنین باعث میشود که همکاری به فرآیندی آسانتر بین برنامهنویسان تبدیل شود و اجازه میدهد تغییرات چند نفره در یک منبع صورت گیرد.
بنابراین صرف نظر از اینکه کدی را بنویسید که فقط خودتان آن را ببینید یا به عنوان بخشی از یک تیم کار کنید، گیت برای شما مفید خواهد بود. این موضوع به این دلیل است که اگر خودتان هم به صورت مستقل در حال کار کردن در گیت نباشید و تنها مشاهدهگر باشید هم کد افراد دیگر هم میتواند الهامبخش شما باشد.
گیت نرم افزاری است که به صورت لوکال اجرا میشود. گیت، فایلهای شما و تاریخچه آنها را در رایانه شما ذخیره میکند. همچنین میتوانید ازهاستهای آنلاین مانند GitHub یا Bitbucket برای ذخیره یک کپی از فایلها و تاریخچه ویرایش آنها استفاده کنید. داشتن یک مکان مرکزی که در آن میتوانید تغییرات خود را آپلود کنید و تغییرات را از دیگران دریافت کنید، به شما این امکان را میدهد که راحتتر با توسعه دهندگان دیگر همکاری کنید. علاوه بر این، گین میتواند به طور خودکار تغییرات را ادغام (Merge) کند، بنابراین دو نفر حتی میتوانند روی قسمتهای مختلف یک فایل کار کنند و بعداً آن تغییرات را بدون از تغییری در نسخه اصلی آن فایل با یکدیگر در میان بگذارند!
کارایی گیت چیست؟
ویژگیهای عملکرد گیت در مقایسه با بسیاری از گزینههای دیگر در این حوزه بسیار قویتر است. انجام تغییرات جدید، شاخهبندی، ادغام (Merge) و مقایسه نسخههای گذشته همگی برای عملکرد بهتر در گیت بهینه شدهاند. الگوریتمهای پیادهسازی شده در گیت از دانشی عمیق بهره میبرند که در مورد ویژگیهای رایج فایلهای کدها با منبعی واقعی، نحوه اصلاح آنها در طول زمان و الگوهای دسترسی است.
برخلاف برخی از نرمافزارهای کنترل نسخه، گیت هنگام تعیین اینکه ذخیرهسازی و تاریخچه نسخه شاخههای فایلها چگونه باید باشد، فریب نام فایلها را نمیخورد، در عوض، گیت بر روی محتواهای هر فایل تمرکز میکند. پس از همه، فایلهای کد منبع اغلب دچار تغییر نام، تقسیم، و مرتبسازی مجدد میشوند. فرمت فایلهای پایگاه داده گیت از ترکیبی از رمزگذاری دلتا (ذخیره تفاوتهای محتوا)، فشردهسازی و ذخیره صریح محتویات دایرکتوری استفاده میکند.
گیت نجاتدهنده دولوپرها یا همان توسعه دهندهها است! میگویید نه؟ پس با ما همراه باشید. به عنوان مثال، یک توسعه دهنده، تغییراتی در کد منبع ایجاد میکند، تا یک ویژگی را برای آپدیت بعدی نسخهای از برنامه را اعمال کند، پس از آن، این دولوپر ممکن است نیاز داشته باشد که تغییرات جدیدی را اعمال کند و ویژگی جدیدی برای کار نیاز باشد؛ بنابراین شخص، آن تغییرات را نیز انجام میدهد.
طبیعتاً کارها باید به عنوان بخشهای جداگانهای از پروژه مرحله به مرحله ثبت شوند چرا که اگر نیاز به تغییر باشد بتواند به مرحله مورد نظر مراجعه کند و ایراد آن را رفع کند. حال، همین توسعهدهنده ممکن است به نسخه ۱٫۳ همان نرم افزار سوئیچ کند تا باگی را برطرف کند که فقط نسخه قدیمیرا تحت تأثیر قرار میدهد. هدف از این کار این است که بقیه اعضای تیم را قادر سازد تا نسخه رفع اشکال نسخه ۱٫۳٫۱ را قبل از آماده شدن نسخه ۲٫۰ ارائه دهند.
پس از اینکه توسعه دهنده این کار را انجام داد میتواند به شعبه ۲٫۰ بازگردد تا به کار بر روی ویژگیهای جدید برای ۲٫۰ ادامه دهد و همه اینها میتواند به صورت کاملا آفلاین و بدون دسترسی به شبکه صورت گیرد و دقیقا به همین دلیل است که گیت میتواند توسعهدهندهها را نشان بدهد. فرقی نمیکند که در حال کار بر روی میز خود در خانه باشید یا در حال کد زدن در هوایپما! گیت بستری امن دقیق را برای افرای که کد میزنند فراهم میکند. این همان ویژگیای است که گیت را از نرمافزارهای این حوزه مجزا میکند.
آیا گیت امن است؟
گیت با یکپارچگی کد منبع به عنوان اولویت اصلی طراحی شده است. محتوای فایلها و همچنین روابط واقعی بین فایلها و دایرکتوریها، نسخهها، برچسبها و commitها، همه این موضوعات در پایگاه داده Git با یک الگوریتم هش رمزنگاری امن به نام SHA1 ایمن میشوند. این کار از کد و تاریخچه تغییرات در برابر رخدادهای تصادفی و مخرب محافظت میکند و تضمین میکند که تاریخچه کارهای شما کاملا قابل پیگیری و ویرایش باشند.
با گیت ، میتوانید مطمئن باشید که سابقه محتوای معتبری از کد منبع خود دارید. برخی دیگر از سیستمهای کنترل نسخه هیچ حفاظتی در برابر تغییرات مخفی در تاریخ بعدی ندارند. این میتواند یک آسیب پذیری جدی امنیت اطلاعات برای هر سازمانی باشد که به توسعه نرم افزار متکی است.
چرا گیت نسبت به سایر نرم افزارهای حوزه برنامهنویسی طرفداران بیشتری دارد؟
یکی از اهداف کلیدی طراحی Git انعطاف پذیری است. در واقع، گیت از چندین جنبه انعطاف پذیر است:
- پشتیبانی از انواع مختلف گردش کار
- همهجانبه بودن و کارایی در پروژههای کوچک و بزرگ
- سازگاری با بسیاری از سیستمها و پروتکلهای موجود
گیت برای پشتیبانی از شاخهبندی فایلها و برچسبگذاری طراحی شده است و عملیاتهایی که بر شاخهها و برچسبها تأثیر میگذارند (مانند ادغام (Merge) یا برگرداندن) نیز به عنوان بخشی از تاریخچه تغییر ذخیره میشوند. همه سیستمهای کنترل نسخه دارای این سطح از ردیابی و پیگیری منظم نیستند. گیت در واقع میتواند ریز تغییرات شما را در سیستم ذخیره کند و به شما نشان دهد که میتوانید در هر لحظهای که اراده کنید تغییرات خود را ببینید. این ثبت تغییرات فشار زیادی را از روی برنامهنویسان برمیدارد چرا که همیشه نیاز به بکاپ گیری دارند و ممکن است حتی بک آپ هم گم شود به همین دلیل گیت یک روش ایمن و مطمئن برای ثبت تغییرات بر روی کد است.
کنترل نسخه با گیت (Git )
گیت امروزه بهترین انتخاب برای اکثر تیمهای نرم افزاری است. در حالی که نیاز هر تیم متفاوت است و باید تجزیه و تحلیل به خصوصی را انجام دهد، در اینجا به دلایل اصلیای پرداختیم که چرا کنترل نسخه با Git بر گزینههای جایگزین ترجیح داده میشود:
آیا عملکرد گیت خوب است؟
گیت دارای عملکرد قابل قبول، امنیت قابل اتکا و انعطاف پذیری مثال زدنیای است که اکثر تیمها و توسعه دهندگان فردی به آن نیاز دارند. این ویژگیهای Git در بالا توضیح داده شده است. در مقایسههای جانبی با اکثر گزینههای دیگر، بسیاری از تیمها دریافتند که Git بسیار مطلوب است. بعید استکه برنامهنویس باشید و گیت و کاربرد آن به شما در راستای پیشبرد اهدافتان کمک نکند.
گیت همه استانداردهای لازم برای تبدیل شدن به بهترین را داشته است!
گیت گستردهترین ابزار مورد استفاده در نوع خود است. این موضوع باعث جذابیت Git میشود. تقریباً تمام کد منبع پروژههای مختلف در Git مدیریت میشود. این انعطاف پذیری گیت تقریبا هر توسعهدهندهای را نجات میدهد و او را از نصب برنامههای مختلف برای ثبت تغییرات باز میدارد.
تعداد زیادی از توسعه دهندگان در حال حاضر تجربه استفاده از Git را دارند و بخش قابل توجهی از فارغ التحصیلان هم در گیت پروژههایی را پیش بردهاند. در حالی که برخی از سازمانهای امروزی ممکن است هنگام استفاده به Git از سیستم کنترل نسخه دیگری نیاز به یادگیری داشته باشند، اما با توجه به سیر صعودی پیشرفت در گیت بسیاری از توسعهدهندگان فعلی و آینده نیازی به آموزش جدی در مورد Git ندارند. این موضوع میزان و سرعت فراگیر شدن گیت را در جهان امروز به خوبی به نمایش میگذارد.
اگر شما یک توسعهدهنده تازه وارد به حوزه برنامهنویسی هستید که میخواهید مهارتهای ارزشمندی را در ابزارهای توسعه نرمافزار به دست بیاورید و راه را برای کسب تجربه خود باز کنید، ثبت نام و ورود به گیت باید یکی از اولین کارهای شما باشد. باید مطمئن باشید که استفاده از گیت میتواند سرعت رشد شما را افزایش بدهد.
گیت، یک پروژه منبع باز با کیفیت
گیت یک پروژه منبع باز بسیار خوب با بیش از یک دهه تجربه است. کسب و کارهای بیشماری به شدت بر این کیفیت ایمن بودن و به روز بودن گیت تکیه میکنند. در واقع یت به عنوان یک پایگاه داده اطلاعاتی به صورت شبانهروزی در حال حراست و به روز رسانی است که همین موضوع سبب پیشرفت روزافزون این پلتفرم شده است.
گیت از پشتیبانی عالی جامعه و پایگاه کاربری وسیعی برخوردار است. این برنامه دارای مستندات بسیار عالی و فراوان است، از جمله کتاب، آموزش و وب سایتهای اختصاصی. پادکستها و آموزشهای ویدئویی که به افراد تازه وارد کمک میکنند تا مسیر خود را در هزارتوی برنامهنویسی و کدهای تودرتو پیدا کنند.
منبع باز بودن هزینه توسعه دهندگان علاقهمند را کاهش میدهد زیرا میتوانند بدون پرداخت هزینه از Git استفاده کنند. برای استفاده در پروژههای متن باز، Git بدون شک جانشین نسلهای قبلی سیستمهای کنترل نسخه منبع باز موفق، SVN و CVS است.
به هر چیزی در گیت انتقاداتی وارد است، انتقادات مربوط به Git چیست؟
یکی از انتقادات رایج به Git این است که یادگیری آن ممکن است دشوار باشد. برخی از اصطلاحات در Git برای تازه واردان جدید خواهد بود و برای کاربران سیستمهای دیگر، اصطلاحات Git ممکن است متفاوت باشد، به عنوان مثال، revert در Git معنای متفاوتی با SVN یا CVS دارد. با این وجود Git بسیار توانمند است و قدرت زیادی را در اختیار کاربران خود قرار میدهد. یادگیری استفاده درست از آن ممکن است مدتی طول بکشد، اما پس از آموختن آن، تیم میتواند از آن قدرت برای افزایش سرعت توسعه خود استفاده کند.
برای تیمهایی که از یک VCS توزیع نشده میآیند، داشتن یک پایگاه داده مرکزی ممکن است چیز خوبی به نظر برسد که نمیخواهند از دست بدهند. با این حال، در حالی که Git به عنوان یک سیستم کنترل نسخه توزیع شده (DVCS) طراحی شده است، با Git، همچنین میتوانید یک پایگاه داده رسمی و متعارف داشته باشید که در آن همه تغییرات نرم افزار میتوانند بدون هیچ دردسری ذخیره شوند.
با Git، از آنجایی که حافظه هر توسعهدهنده همیشه محدود است، کار آنها نیازی به در دسترس بودن و یا عملکرد سرور «مرکزی» ندارد. در این لول کاری، توسعه دهندگان همچنین میتوانند در حالت آفلاین تاریخچه کامل پروژه را مشاهده کنند. از آنجایی که Git انعطافپذیر است، میتوانید به روشی که به آن عادت کردهاید کار کنید، اما سعی کنید که از زیر و بم گیت سر در بیاورید چرا که هر آن ممکن است که از یک ویژگی بینظیر ان بیخبر مانده باشید.
اکنون که میدانید کنترل نسخه چیست، Git چیست و چرا تیمهای نرمافزاری باید از آن استفاده کنند، برای کشف مزایایی که Git میتواند در کل سازمان ارائه دهد، ادامه مطلب را بخوانید.
راههای استفاده از گیت (Git)
گیت نرم افزاری است که میتوانید از طریق (ترمینال) یا یک برنامه دسکتاپ که دارای رابط کاربری گرافیکی (رابط کاربری گرافیکی) است، مانند Sourcetree ، به آن دسترسی داشته باشید.
مخازن Git
یک پایگاه داده Git یا به اختصار repo شامل تمام فایلهای پروژه و کل تاریخچه ویرایش است. یک پوشه معمولی از فایلها را در اختیار دارید و به Git منتقل میکنید که آن را به یک پایگاه داده تبدیل کند. گیت یک زیرپوشه .git ایجاد میکند که حاوی تمام متادیتاهای Git برای ردیابی تغییرات است.
در سیستمعاملهای مبتنی بر یونیکس مانند macOS، فایلها و پوشههایی که با نقطه (.) شروع میشوند پنهان هستند، بنابراین پوشه .git را در macOS Finder نخواهید دید مگر اینکه فایلهای مخفی را نشان دهید، اما این پوشه وجود دارد! ممکن است بتوانید آن را در برخی از ویرایشگرهای کد مشاهده کنید.
Stage & Commit Files
گیت را به عنوان جعبه اسارارآمیزی از تغییرات فایلها در نظر بگیرید. اما چگونه به Git بگوییم که تغییرات ما را ثبت کند؟ هر تغییر ثبت شده در یک فایل یا مجموعه ای از فایلها commit نامیده میشود.
قبل از ایجاد commit، باید به Git بگوییم که چه فایلهایی را میخواهیم commit کنیم. در این مرحله از دستور add استفاده میکنید. اما چرا نمیتوانیم فایل را مستقیماً commit کنیم؟ فرض کنید روی دو فایل کار میکنید، اما فقط یکی از آنها آماده commit است. شما نمیخواهید مجبور شوید هر دو فایل را با هم کامیت کنید و میخواهید تنها و فقط فایلی که آماده است را کامیت کنید. اینجاست که دستور add Git وارد میشود. ما فایلها را به یک ناحیه مرحلهبندی اضافه میکنیم و سپس فایلهایی که مرحلهبندی شدهاند را commit میکنیم.
مخازن راه دور در GitHub و Bitbucket
گیت خود با یک میزبان آنلاین (مانند GitHub یا Bitbucket) را در اختیار شما قرار میدهد که میتوانید تغییرات خود را آپلود کنید و تغییرات فایلهای دیگران دانلود کنید و به شما امکان میدهد راحت تر با توسعه دهندگان دیگر همکاری کنید. پس از اینکه شخص دیگری تغییراتی را در یک پایگاه داده گیت خود انجام داد، میتوانید تغییرات او را در پایگاه داده محلی خود ذخیره کنید (کش کنید).
شاخهها و ادغام (Merge)
گیت به شما امکان میدهد از پایه کد اصلی دور شوید و در دنیای کدها ماجراجویی کنید. گیت به شما امکان میدهد راحتتر با توسعهدهندگان دیگر کار کنید و انعطافپذیری زیادی در گردش کارتان به شما میدهد.
در اینجا مثالی از نحوه مفید بودن شاخههای Git آورده شده است:
فرض کنید باید روی یک ویژگی جدید برای یک وب سایت کار کنید. شما یک پروژه جدید در گیت ایجاد میکنید و شروع به کار میکنید. شما ویژگی جدید خود را تکمیل نکردهاید، اما درخواستی برای ایجاد یک تغییر سریع دریافت میکنید که باید امروز در سایت فعال شود. شما به شاخه اصلی برمیگردید، تغییر را انجام میدهید و آن را به صورت زنده فعال میکنید. سپس میتوانید به شاخه ویژگی جدید خود برگردید و کار خود را تمام کنید. وقتی کارتان تمام شد، شاخه ویژگی جدید را در شاخه اصلی ادغام (Merge) میکنید و هر دو ویژگی جدید شما پیش روی شما است!
هنگامیکه دو شاخه را ادغام (Merge) میکنید گاهی اوقات ممکن است دچار تضاد شوید. برای مثال، شما و یک توسعه دهنده دیگر ناآگاهانه هر دو روی یک قسمت از یک فایل کار میکنید. توسعه دهنده دیگر تغییرات خود را به شکلی متفاوت ذخیر میکند. وقتی آنها را به پایگاه محلی خود در گیت بکشید، با یک تضاد ادغام (Merge) مواجه خواهید شد. خوشبختانه Git راهی برای مدیریت تضادها دارد، بنابراین میتوانید هر دو مجموعه تغییرات را ببینید و تصمیم بگیرید که کدام را میخواهید حفظ کنید. این انعطافپذیری چیزی است که گیت به کاربران خود هدیه میکند.
درخواستهای بررسی تغییرات در گیت
درخواستهای بررسی راهی برای بحث در مورد تغییرات قبل از ادغام (Merge) کدها در پایگاه کد شما است. فرض کنید در حال مدیریت یک پروژه هستید. یک توسعهدهنده تغییراتی را در یک شاخه جدید ایجاد میکند و میخواهد آن شاخه را در پایگاه اصلی ادغام (Merge) کند. آنها میتوانند یک درخواست بررسی ایجاد کنند تا به شما اطلاع دهند که کد آنها را بررسی کنید. در این حالت، شما میتوانید تغییرات را مورد بحث قرار دهید و تصمیم بگیرید که آیا میخواهید آنها را با دادههای خود ادغام (Merge) کنید یا خیر.
جالب است بدانید که بوتکمپهای مختلفی در راستای یادگیری گیت وجود دارند که میتوانید از آنها استفاده کنید. با گیت میتوانید مهارتهای خود را تقویت کنید. اما حال که با گیت آشنا شدیم به این نکته میرسیم که چکونه گیت را نصب کنیم؟
چگونه در مک و ویندوز گیت را نصب کنیم؟
دانلود نسخه گیت در مک و ویندوز بسیار ساده است و میتوانید به راحتی آخرین نسخه آن را دانلود کنید.
دانلود و نصب Git در مک
- به Applications > Utilities بروید و Terminal.app را باز کنید.
- در پنجره ترمینال، عبارت git را تایپ کرده و Return را فشار دهید:
- اگر ترمینال شماره نسخه git را به شما میگوید، یعنی شما قبلاً Git را نصب کردهاید. اگر آن را نصب نکردهاید، از شما خواسته میشود ابزارهای توسعهدهنده Xcode را دانلود و نصب کنید (که شامل Git میشود). مراحل دانلود/نصب Xcode را تا زمانی که تمام شود ادامه دهید.
چگونه گیت را در ویندوز نصب کنیم؟
- یک مرورگر وب باز کنید و به git-scm.com/download بروید
- روی دکمه دانلود کلیک کنید.
- نصب کنندهای را که دانلود کردهاید راه اندازی کنید.
- قرار دادن یک نسخه شورتکات بر روی دستکتاپ به صورت پیشفرض فعال است. اما میتوانید در صفحه Select Components گزینه قرار دادن آیکون برنامه روی دسکتاپ را بررسی کنید، اما در غیر این صورت، فقط روی Next کلیک کنید تا از طریق نصبکننده یه شورتکات را روی دستکتاپ خود داشته باشید.
سیستم کنترل نسخه توزیع شده در گیت چیست؟
هر برنامه نویسی یک کپی از تمام نسخههای کد در سیستمهای محلی خود دارد. VSCها میتوانند مخازن محلی خود را با دادههای جدید از سرور مرکزی به روز کنند و تغییرات را در پایگاه اصلی ذخیره کنند. وی اس سی ها یکی از سیستمهای کنترل نسخه توزیع شده در گیت هستند.
اگر تازه با مفهوم گیت آشنا شدید و قبلا کلمه گیت هاب را شنیدهاید؛ ممکن است فکر کنید گیت و گیت هاب یکسان هستند؛ اما اینطور نیست، در ادامه بهر بررسی این موضوع میپردازیم.
GitHub چیست و چرا باید از آن استفاده کنیم؟
برای شروع باید بدانیم که Git با GitHub یکسان نیست. با وجود نامهای مشابه، Git و GitHub یک چیز نیستند. آنها با هم کار میکنند، اما هویت متمایز و مخصوص به خودشان را دارند.. Git به ما امکان میدهد نسخههای خاصی از کار خود را در یک پایگاه محلی در رایانه خود ذخیره کنیم و GitHub یک سرویس میزبانی آنلاین پروژه برای Git است، به این معنی که گیت هاب دایرکتوریهایی را که حاوی تمام فایلها و پوشههایی هستند که پروژههای ما را تشکیل میدهند، نگهداری میکند.
GitHub همچنین به تیمها اجازه میدهد تا به طور یکپارچه با یکدیگر (بیشتر اوقات) روی یک پایگاه کد یکسان کار کنند. همه اعضای یک تیم میتوانند یک نسخه محلی از کد را در GitHub ادیت کنند، و سپس، با انجام کار، کد برنامهنویسی شده و از پایگاه محلی توسعه دهنده خارج میشود و به پایگاه عمومی در GitHub اضافه میشود. این موضوع باعث میشود تا همه بتوانند به کد دسترسی داشته باشند. ممکن است مفاهیم مربوط به برنامهنویسی به هم شباهت داشته باشند اما قول میدهیم که در اکثر اوقات دو چیز متفاوت را در بر میگیرند مثل جاوا و جاوا اسکریپت، گیت و گیت هاب و…
اما طرز کار با گیت هاب چیست؟ به عنوان یک میزبان ذخیرهسازی برای اطلاعات، چگونه از گیت هاب استفاده کنیم؟ ساختار گیت هاب چگونه است؟
همنطوری که درباره گیت توضیح دادیم؛ بسیاری از افراد که در این زمینه متخصص نیستند به اشتباه فکر میکنند که گیت و گیت هاب یک چیز هستند یا گیت مخفف گیت هاب است! اینگونه نیست. شما در گیتهاب میتوانید به صورت تیم بر روی یک کد کار کنید در حالی که گیت وظیفه ذخیرهسازی تغییرات فایل شما را برعهده دارد. از طرفی در گیت هاب میتوانید کد خود را با دیگران به اشتراک بگذارید و یا حتی کدی که دیگران به اشتراک گذاشتهاند را مشاهده کنید . در واقع گیت هاب مثل یک ویترین عمل میکند.
ایجاد پایگاه داده در GitHub
حالا بیایید یک پایگاه داده در GitHub ایجاد کنیم. این پایگاه داده با پایگاه داده محلی شما همگام میشود. در واقع، کدی که به صورت محلی و شخصی ایجاد میکنید با این پایگاه داده آنلاین همگام سازی میشود تا بتوانید کد را به اشتراک بگذارید و به صورت عمومی بر روی آن کار کنید. اما چگونه میتوانیم یک پایگاه داده در گیت هاب ایجاد کنیم؟
- به نمایه GitHub خود بروید. روی دکمه سبز رنگ به نام New Repository کلیک کنید.
- اسم دایرکتوری خود را انتخاب کنید.
- اسم را بدون README.md ذخیره کنید؛ پس از ذخیره این پسوند به فایل به صورت اتوماتیک از سمت گیت هاب اضافه خواهد شد.
- سپس فایل شما آماده است.
Git و GitHub چه تفاوتی دارند؟
در بالا به این موضوع پرداختیم که گیت و گیت هاب یکی نیستند اما در این بخش میخواهیم به این موضوع بپردازیم که تفاوتهای دقیق این دو چیست؟ با توجه به اینکه کدنویسی به شدت به دقت متکی است، قرارداد نامگذاری پیرامون زبانها و منابع برنامهنویسی کمی پیچیده است.
جاوا و جاوا اسکریپت تقریباً به اندازه ژامبون و موش به هم مرتبط هستند، برای مثال شاید فکر کنید پایتون از نام مار گرفته شده است و لوگوی پایتون هم تصویری از مارهای در هم تنیده شده است، اما احتمالا شنیدن این موضوع شوکه کننده است که در واقع این برنامه از نام گروه کمدی طرح مونتی پایتون نامگذاری شده است. بنابراین، برای کسی که برای اولین بار در مورد Git و GitHub میشنود، ارتباط ظاهری ممکن است او را به اشتباه بیاندازد. این در برنامهنویسی کاملا مشهود است.
پروژههای توسعهای از ابتدا کامل و برنامهنویسی شده نیستند. آنها از ابتدا خط روی خط از کدها ساخته شدهاند. و اغلب، آزمایشها، خطاها و تصحیحهای زیادی برای ایجاد چیزی انجام میشود تا بتواند در نهایت همانطور که باید، عمل کند. اینجاست که نرم افزار کنترل نسخه یا گیت وارد میشود.
کنترل نسخه مانند یک برنامه بکاپ گیری و پشتیبان برای پروژه شما است. با ردیابی و ثبت تغییراتی که در فایل یا مجموعه فایل خود در طول زمان ایجاد میکنید، یک سیستم کنترل نسخه به شما این قدرت را میدهد که نسخههای قبلی را بازبینی یا حتی بازیابی کنید. کنترل نسخه از هر بازبینی پروژه شما عکس فوری میگیرد. سپس میتوانید به این نسخهها دسترسی داشته باشید تا در صورت نیاز آنها را مقایسه یا بازیابی کنید.
به عنوان مثال، فرض کنید که شما در حال کار بر روی یک پروژه توسعه وب هستید، و در طی بازبینیهای خود، ناگهان متوجه میشوید که تمام متنهای شما ناهماهنگ شده است. و از آنجایی که اولین قانون کدنویسی این است که همیشه تقصیر شماست، مجبور هستید که فرآیندی که انجام دادهاید را از اول مجددا کدنویسی کنید! اما نه! گیت این قابلیت را به شما میدهد که کار را سریعا ختم به خیر کنید. به جای اینکه مجبور باشید در هر خط کد به عقب برگردید، فقط میتوانید سیستم کنترل نسخه خود برای بارگیری مجدد نسخههای قبلی استفاده کنید و در لحظه آنها را اصلاح یا بازبینی کنید.
جمعبندی
در این مطلب هر آنچه که لازم بود درباره گیت و تفاوت ان با گیت هاب بدانید اورده شده است و به تمام مزایای گیت، نحوه نصب و ثبت پروژه در گیت و گیتهاب، مثالهایی از کاربردهای گیت هاب پرداخته شد. به صورت خلاصه گیت نرمافزاری برای کنترل نسخه برای پروژههای شما است و مانند یک پشتیبان برای فایلهای شما عمل میکند به این صورت که تاریخچه کدهای شما و فایلهای پیشین شما را به خاطر میسپارد و و در لحظه به شما اجازه میدهد که به فایلهای قبلی خود دسترسی داشته باشید و بتوانید آنها را بازنویسی و یا ویرایش کنید.
این قابلیت چیزی است که نرم افزار گیت را به یک نسخه قابل تحسین بدل کرده است؛ در ادامه به معرفی و کاراییهای گیت هاب هم پرداختیم که بستری بود که برنامهنویسها میتوانستند به صورت مشترک یا تکی پروژه تعریف کنند و یکدیگر را به پروژههای خود اضافه کنند تا بتوانند بر روی کدهای یکدیگر تغییرانی را اعمال کنند و کارهای خود را به صورتی سریع پیش ببرند. در گیت هاب توسعه دهندگان و حتی برنامهنویسان مبتدی میتوانستند کدهای افراد دیگر را ببینند و از آنها ایده بگیرند یا حتی از آن استفاده کنند تا بتوانند به آن چه که میخواهند برسند.