مشکلی که همهی برنامهنویسان با آن روبهرو بودهاند
تصور کنید روی یک فایل کار میکنید و برای اطمینان، نسخههای مختلف آن را با نامهایی مثل project_v1، project_final و project_final_2 ذخیره میکنید. بعد از چند روز دیگر نمیدانید کدام نسخه درست کار میکند و چه تغییری بین آنها انجام شده است. این دقیقاً همان مشکلی است که سیستمهای کنترل نسخه (Version Control System) حل میکنند.
کنترل نسخه ابزاری است که تاریخچهی کامل تغییرات یک پروژه را ثبت میکند: چه کسی، چه زمانی و چه چیزی را تغییر داده است. با این ابزار میتوانید به هر لحظه از تاریخچهی پروژه برگردید، تغییرات چند نفر را با هم ترکیب کنید و بدون ترس از خراب کردن کد، آزمایشهای جدید انجام دهید.
گیت (Git) محبوبترین سیستم کنترل نسخهی توزیعشده است که در سال ۲۰۰۵ توسط لینوس توروالدز، خالق لینوکس، برای مدیریت توسعهی هستهی لینوکس نوشته شد. برخلاف سیستمهای متمرکز قدیمیتر، در گیت هر توسعهدهنده یک نسخهی کامل از تاریخچهی پروژه را روی سیستم خودش دارد؛ یعنی حتی بدون اتصال به اینترنت هم میتوانید کار کنید.
گیتهاب (GitHub) یک سرویس آنلاین برای میزبانی مخازن گیت است که امکاناتی مثل اشتراکگذاری کد، بررسی تغییرات و همکاری تیمی را روی گیت اضافه میکند. توجه کنید که گیت و گیتهاب دو چیز متفاوتاند: گیت ابزار خط فرمان است و گیتهاب یک پلتفرم است که از گیت استفاده میکند. در ادامهی این دوره، ابتدا گیت را از پایه یاد میگیریم و سپس با گیتهاب کار تیمی را تمرین میکنیم.