مقدمه‌ای بر Git و Github

اکثر اوقات توسعه دهنده پروژه‌هایمان را روی لوکال سرور خود کار می‌کنیم و تغییرات را اعمال می‌کنیم و وب سایت یا وب اپلیکیشن را روی سرور اصلی آپلود می‌کنیم، ولی این زمانی به درد می‌خورد که پروژه و تغییراتی که روی اون انجام می‌دهیم خیلی کوچک باشد و بتوان به راحتی مدیریتش کرد. حال تصور کنید پروژه شما خیلی بزرگتر شود و شما به همراه تیم یا افراد دیگری روی پروژه‌ای کار کنید. تک تک افراد در هر لحظه تغییراتی در کد بوجود می‌آورند، حالا شما چطور می‌خواید این پروژه را کنترل کنید و در آن تغییراتی اعمال کنید و هر تغییری که اعمال می‌کنید قابل دسترسی باشد؟خوب برای این مشکل  راه حل خیلی خوبی ابداع شده است که ورژن کنترلرها نام دارد.

یکی از این ورژن کنترل‌ها که به صورت متن باز در اختیار همه قرار گرفته است، Git نام دارد که در این پست قصد داریم در مورد آن توضیح دهیم.

چرا باید از ورژن کنترل‌ها استفاده کنیم؟

جوابش خیلی آسونه و از اسمش هم معلومه. ما می‌تونیم در طول پروسه توسعه پروژمون به هر ورژنی از پروژه دسترسی داشته باشیم و خیلی آسون فایل‌ها رو ویرایش کنیم و تغییرات فایل رو ببینیم و اونا رو ثبت کنیم. اگر روی پروژه‌های بزرگ به همراه یک تیم توسعه دهنده کار کردید، حتما قدر همچین نعمتی رو می‌دونید.

حالا تصور کنید چندین نفر روی یک پروژه‌ی بزرگ کار می‌کنند. یکی از بهترین روش‌ها اینه که یک سرور داشته باشیم که تمامی ورژن هامون رو در اون ذخیره کنیم و همیشه بهش دسترسی داشته باشیم. این روش مدت خیلی زیادیه که مرسومه و هنوز که هنوزه جواب میده. برای مثال اگر شما در یک صفحه‌ی ویکیپدیا دنبال تاریخ های تدوین متون بگردید تقریبا منظور من رو درک می‌کنید.

مزیت چنین سیستم‌هایی اینه که هر توسعه دهنده میتونه تغییراتی رو به اسم خودش و در زمان مشخصی ذخیره کنه ولی در این طرف قضیه همیشه هم اینجوری کار خوب پیش نمیره. تصور کنید دیتابیس به فنا رفته و شما آخرین ورژن از کد رو در اختیار دارید و دسترسی به ورژن‌های قبل ندارید، چه می‌کنید؟ به یقین هیچ کاری از دستتون بر نمیاد مگر اینکه دو دستی بکوبید رو سرتون.

خوب مشکل کار توسط Git ، یا هر ورژن کنترلر دیگری به سادگی حل میشه. در این سیستم هر توسعه دهنده به تمامی ورژن های پروژه دسترسی داره و تغیرات خودش رو اعمال میکنه و اونا رو ذخیره میکنه. توجه داشته باشید در این سیستم هم از یک سرور مرکزی استفاده میکنه و همه چی اونجا قرار داره اما هر توسعه دهنده به صورت لوکال به ورژن‌های مختلف دسترسی داره. البته شما می‌تونید به صورت لوکال هم همین Git رو راه اندازی کنید بدون نیاز به یک سنترال سرور.

Git به اختصار هر ورژن از پروژه به عنوان یک ؛ SnapShot؛ ذخیره میکنه که توسط کامنت‌ها یا به اصطلاح پیام‌هایی که ما در هر ورژن در فایل هامون اضافه می‌کنیم ما رو راهنمایی میکنه به ورژن‌های قبل و اطلاعاتی از تاریخ اعمال تغییر و نوع تغییر به ما میده.

خوب تا اینجا مفهوم ورژن کنترلرها و Git ٰرو فهمیدیم حالا بریم سراغ Github . فکر کنم اگر کمی از توسعه وب سرتون بشه اسمش به گوشتون خورده و یا بعضی از شما از Github استفاده کردین و با تجربه این.

با اینکه شما می‌تونید روی سیستم خودتون Git رو به صورت لوکال داشته باشید، وب سایت Github این امکان رو بهتون میده که در یک محیط گرافیکی و آنلاین ورژن کنترل پروژه خودتون رو راه بندازید. هم چنین شما با استفاده از این سرویس می‌تونید به کامیونیتی بزرگی از توسعه دهندگان در زبان‌های مختلف دسترسی داشته باشید هم چنین متونید پروژه‌های مختلفی رو Fork کنید یا توسعه دهندگان دیگه‌ای پروژه‌ی شما رو Fork کنن. منظور از Fork یعنی کل پروژه شما رو بریزن روی یک  Repository جدید توی اکانت خودشون و روی اون تغییراتی بدن ولی روی ورژن اصلی پروژه شما هیچ تغییر اعمال نمیشه. اگر اشتباه نکنم در پلن رایگان Github شما میتونید بینهایت Repository عمومی تعریف کنید. اگر می‌خواید پروژتون خصوصی و یا اصطلاحا Private باشه می‌تونید از پلن‌های پولی Github استفاده کنید که البته خیلی هم گرون نیستن. اگه از من می‌شنوید یه اکانت رایگان درست کنید و توی وبسایتش بگردید بقیه چیزا رو خودتون کشف می‌کنید.

خوب اگر میخواید Git رو روی ماشین خودتون نصب کنید میتونید به منتظر مطالب بعدی در همین موضوع باشید، یا اینکه کمی در گوگل جستجو کنید 🙂

امین ضیا

کارم طراحی رابط کاربریه، ولی دوست دارم در حوزه منابع انسانی و وصل کردن نیروی فنی و متخصص به کارفرمای خوب، کار کنم و تمامی تلاشم رو هم میکنم که این کار رو به بهترین شکل انجام بدم. همیشه در حال یادگیری هستم و چیزایی رو که بلدم با همه به اشتراک میزارم . شاید در یک پست بلاگ و یا در قالب کلاس های آموزشی. همیشه میتونید با یه هدیه کوچیک خوشحالم کنید #صرفاجهت‌اطلاع

همچنین ممکن است دوست داشته باشید ...

۲ واکنش

  1. احسان گفت:

    با سلام
    ممنون،بسیار عالی بود
    یک درخواست ازتون داشتم:بی زحمت اگر امکانش هست یک سری منابع و سایت یا کتاب جهت یادگیری زبان های تحت وب در قالب یک مطلب معرفی کنید.!

  1. ۰۵-خرداد , ۱۳۹۴

    […] پست پیشین در مورد گیت و گیت‌ هاب تا اندازه‌ای آشنا شده‌اید و حالا وقت آن رسیده که […]

  2. ۰۴-مرداد , ۱۳۹۴

    […] مورد اینکه Git چی هست و در مورد سرویس GitHub می‌تونید مطالب قبلی رو مطالعه […]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *