چرا به کنترل نسخه نیاز داریم؟
در دنیای امروز توسعه نرمافزار، تقریباً هیچ پروژهای توسط یک فرد و در یک فضای ایزوله انجام نمیشود. بیشتر نرمافزارها نتیجه همکاری چندین نفر هستند؛ افرادی که در نقاط مختلف دنیا، یا حتی در یک دفتر، روی یک پایگاه کد مشترک کار میکنند.
حالا تصور کنید تیمی از برنامهنویسان بخواهد بدون هیچ ابزار مدیریتی کدهای خود را در یک پوشه مشترک قرار دهد. توسعهدهندهای روی یک فایل تغییر میدهد، دیگری همان فایل را تغییر میدهد و هر دو فایل در پایان با هم تداخل پیدا میکنند. بعضی وقتها حتی افراد مجبور میشوند فایلها را با نامهای گیجکنندهای مثل final_final_reallyfinal.doc
ذخیره کنند.
این وضعیت نه تنها ناکارآمد است، بلکه احتمال از دست رفتن کد، خطاهای انسانی و دوبارهکاری را افزایش میدهد.
به همین دلیل سیستمهای کنترل نسخه (Version Control Systems | VCS) ساخته شدند. این سیستمها ابزارهایی هستند که تغییرات روی کد یا هر فایل دیگری را در طول زمان ثبت و مدیریت میکنند. با VCS شما میتوانید:
تغییرات هر فرد را پیگیری کنید.
در صورت بروز خطا، به نسخههای قبلی برگردید.
بهصورت همزمان روی چند ویژگی کار کنید.
همکاری تیمی سازمانیافتهتری داشته باشید.
در این میان، گیت (Git) بهعنوان محبوبترین سیستم کنترل نسخه و گیتهاب (GitHub) بهعنوان بزرگترین بستر همکاری روی پروژههای گیت، نقش کلیدی در دنیای توسعه امروزی ایفا میکنند.
گیت (Git)) چیست؟
گیت یک سیستم کنترل نسخه توزیعشده (Distributed Version Control System | DVCS) است. این یعنی به جای اینکه همه چیز در یک سرور مرکزی ذخیره شود، هر توسعهدهنده یک کپی کامل از مخزن (Repository) را روی سیستم خودش دارد.
ویژگی مهم گیت در مفهوم Commit است. هر کامیت یک عکس فوری (Snapshot) از پروژه در همان لحظه است. این عکس فوری دقیقاً وضعیت تمام فایلها را ثبت میکند و در تاریخچه پروژه ذخیره میشود. به این ترتیب، اگر مشکلی پیش بیاید، همیشه میتوان به یک نسخه پایدار بازگشت.
گیت در سال ۲۰۰۵ توسط لینوس توروالدز (خالق لینوکس) ساخته شد، چون پروژه کرنل لینوکس به ابزاری نیاز داشت که سریع، امن و مقیاسپذیر باشد.
مراحل راهاندازی Git در ویندوز
۱. دانلود و نصب Git
به سایت رسمی Git بروید:
https://git-scm.com/download/win
آخرین نسخه Git for Windows را دانلود کنید.
فایل نصب را اجرا کرده و مراحل نصب را با تنظیمات پیشفرض ادامه دهید.
🔎 پیشنهاد: در مرحله انتخاب محیط خط فرمان، گزینه Git Bash را فعال بگذارید.
۲. اجرای Git Bash
بعد از نصب، در منوی Start ویندوز، برنامهای به نام Git Bash اضافه میشود.
روی آن کلیک کنید تا یک ترمینال شبیه لینوکس باز شود.
از این پس تمام دستورات Git را میتوانید در Git Bash اجرا کنید.
۳. بررسی نصب موفق
برای مطمئن شدن از نصب صحیح Git، در Git Bash دستور زیر را وارد کنید:
git --version
اگر نسخه Git نمایش داده شد (مثلاً git version 2.44.0
) یعنی نصب موفق بوده است.
۴. تنظیم نام و ایمیل (فقط بار اول)
قبل از شروع کار با Git، باید نام و ایمیل خود را تنظیم کنید. این اطلاعات در Commitها ذخیره میشود:
git config --global user.name "نام شما"
git config --global user.email "ایمیل شما"
✅ توجه: ایمیل باید همان ایمیلی باشد که در GitHub ثبت کردهاید (اگر قصد اتصال به GitHub دارید).
۵. ایجاد مخزن (Repository) جدید
برای شروع کار در یک پروژه جدید، به پوشه پروژه بروید و دستور زیر را اجرا کنید:
git init
این دستور یک مخزن Git در همان پوشه ایجاد میکند.
۶. اضافه کردن فایلها به Stage
برای اینکه Git تغییرات شما را ردیابی کند، باید فایلها را به مرحله Staging اضافه کنید:
git add <filename>
یا برای اضافه کردن همه فایلها:
git add .
۷. ثبت تغییرات (Commit)
بعد از افزودن فایلها، تغییرات خود را Commit کنید:
git commit -m "اولین کامیت پروژه"
۸. اتصال به مخزن راه دور (GitHub)
برای اتصال پروژه به یک مخزن در GitHub دستور زیر را وارد کنید:
git remote add origin https://github.com/username/repository.git
سپس تغییرات را Push کنید:
git push -u origin main
۹. دریافت تغییرات از مخزن راه دور
برای هماهنگ کردن پروژه محلی با پروژه آنلاین در GitHub:
git pull origin main
۱۰. کلون کردن یک پروژه آماده
اگر پروژهای از قبل روی GitHub وجود دارد و میخواهید آن را روی سیستم خود داشته باشید:
git clone https://github.com/username/repository.git
تبریک
حالا Git روی ویندوز شما نصب و راهاندازی شده و میتوانید پروژههای شخصی یا تیمی خود را مدیریت کنید.
گیتهاب (GitHub)چیست؟
گیتهاب یک پلتفرم مبتنی بر وب برای میزبانی و بهاشتراکگذاری پروژههای گیت است. گیت روی سیستم شما کار میکند، اما وقتی میخواهید با بقیه همکاری کنید، به فضایی نیاز دارید که همه بتوانند کدها را ببینند و مشارکت کنند. اینجاست که گیتهاب وارد میشود.
گیتهاب به توسعهدهندگان اجازه میدهد:
کد خود را در یک مخزن آنلاین ذخیره کنند.
تغییرات را از طریق Pull Request پیشنهاد دهند.
تغییرات دیگران را بازبینی کنند (Code Review).
با ابزارهایی مانند Issues، مشکلات و وظایف را مدیریت کنند.
فرآیندهای DevOps مثل تست خودکار و استقرار (Deployment) را اتوماتیک کنند.
تفاوت کلیدی گیت و گیتهاب
گیت: نرمافزار کنترل نسخه است، روی کامپیوتر شما نصب میشود و بهطور آفلاین قابل استفاده است.
گیتهاب: سرویس آنلاینی است که با استفاده از گیت، بستر همکاری تیمی و اجتماعی را فراهم میکند.
ارتباط: بدون گیت نمیتوان از گیتهاب استفاده کرد، اما میتوان بدون گیتهاب از گیت استفاده کرد.
مزایای کلیدی گیت و گیتهاب
مزایای گیت
سرعت بالا: چون بیشتر عملیاتها روی سیستم محلی انجام میشود، کار با گیت سریع است.
شاخهبندی و ادغام پیشرفته: شاخهها (Branches) در گیت سبک و ارزان هستند؛ شما میتوانید چندین شاخه ایجاد کنید و هرکدام را برای یک ویژگی یا باگفیکس اختصاص دهید.
امنیت دادهها: گیت از الگوریتم SHA-1 برای اطمینان از صحت تاریخچه استفاده میکند.
کار آفلاین: حتی بدون اینترنت میتوانید تغییرات ایجاد کنید و بعداً آنها را همگامسازی (Push) کنید.
مزایای گیتهاب
همکاری تیمی سازمانیافته: Pull Requestها امکان بررسی کد را قبل از ادغام فراهم میکنند.
مدیریت وظایف و باگها: ابزار Issues مثل یک تابلوی کار عمل میکند.
اتوماسیون DevOps: با GitHub Actions میتوانید تستها و استقرار را خودکار کنید.
جامعه بزرگ متنباز: گیتهاب بزرگترین میزبان پروژههای متنباز دنیاست. شما میتوانید در پروژههای معروف جهانی مشارکت کنید یا از دیگران بیاموزید.
مقایسه گیتهاب با رقبای مشابه
گیتهاب در برابر گیتلب
گیتهاب روی همکاری اجتماعی و جامعه متنباز متمرکز است.
گیتلب یک پلتفرم یکپارچه DevOps است که همهچیز را از CI/CD تا مدیریت پروژه در خود جای داده است.
گیتهاب در برابر Azure DevOps
گیتهاب برای همه توسعهدهندگان مناسب است، چه متنباز چه خصوصی.
Azure DevOps بیشتر برای سازمانهایی طراحی شده که در اکوسیستم مایکروسافت فعالیت میکنند و نیاز به یکپارچگی با Azure دارند.
مثال کاربردی
فرض کنید روی یک پروژه استارتاپی کار میکنید. با گیت میتوانید تغییرات را بهصورت محلی مدیریت کنید. وقتی آماده شدید، کد را روی گیتهاب Push میکنید تا همتیمیها بتوانند آن را ببینند. آنها میتوانند روی شاخههای خودشان ویژگی جدید بسازند، Pull Request بفرستند و شما پس از بررسی، تغییرات را ادغام کنید.
بدون این ابزارها، همکاری به شدت زمانبر و پر از خطا میشد.
دانلود دوره Git در Visual Studio
جمعبندی
گیت ابزاری است برای مدیریت نسخهها، سریع، امن و توزیعشده.
گیتهاب پلتفرمی است برای میزبانی پروژههای گیت و همکاری اجتماعی روی آنها.
ترکیب این دو ابزار باعث شده تیمهای کوچک و بزرگ بتوانند پروژههای نرمافزاری عظیم را بدون هرجومرج مدیریت کنند.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید