اگر از برنامهنویسان حرفهای و یا حتی متوسط باشید، حتما از سیستمهای ورژن کنترل مانند GitHub یا GitLab -گیت لب- استفاده کرده اید. اما این ابزارها فقط مخصوص برنامهنویسها نیستند. حتی توسعهدهندگان سختافزار هم میتوانند از این ابزارها استفاده کنند.
ابزارهای ورژن کنترل چه چیزهایی هستند؟
حتماً تابهحال برایتان پیش آمده است که پروژهتان را به یک مرحلهای رسانده باشید که بتوان تا حدی آن را پایدار نامید. سپس تصمیم گرفتهاید که تغییراتی کوچک در آن بدهید و پس از تغییرات متوجه شدهاید که این تغییرات پروژه را از حالت پایدار و مطلوب شما خارج کرده است. اما چند روزی از انجام پروژه گذشته و نمیدانید چه مواردی را باید دوباره دستکاری کنید تا به همان مرحلهی پایدار قبلی برسید. یا حتماً پروژهای که قرار بوده به مدیرتان تحویل دهید را با نام Final Project ذخیره کردهاید و برای او ارسال کردهاید. پس از چند روز اصلاحیهای برای پروژه آمده و شما نسخهی بعدی را با نام Final of Final project ذخیره کرده و دوباره ارسال کردهاید. این روند معمولاً آنقدر ادامه پیدا میکند که لیستی از فایلهای نهایی(!) برای یک پروژه در اختیار دارید. فاجعهی اصلی زمانی رخ میدهد که مدتزمان زیادی از انجام پروژه گذشته است و دوباره لازم است تا به فایل اصلی پروژه مراجعه کنید. در آن زمان است که نمیدانید کدامیک از این فایلها نسخهی پایدار و اصلی است.
ابزارهای ورژن کنترل در چنین مواقعی به کمک توسعهدهندگان میآیند. این ابزارها تاریخچهای از تغییرات را نگهداری میکنند و برای هر تغییری که در آنها ذخیره میشود، میتوان (و البته باید که) یادداشتی نیز اضافه نمود. هر زمان که نیاز به بازگشت بود، با انتخاب نقطهی بازگشت، تمام فایلهای پروژه به تغییرات آن نقطه بر خواهند گشت.
عکس فوق تصویری از یک پروژه را نمایش میدهد که چندین نقطهی بازگشت در طی توسعهی پروژه، برای آن ایجاد شده است. هر نقطهی بازگشت نیز دارای توضیحی از وضعیت پروژه در آن نقطه است تا بهراحتی بتوان به یاد آورد که پروژه در آن نقطه چگونه بوده است.
این ابزارها دقیقاً کجا هستند؟
ابزارهای ورژن کنترل در واقع سرویسهای نرمافزاری هستند. این سرویسها را میتوانید بر روی کامپیوتر شخصی خودتان یا کامپیوتری متصل به شبکهی محلی، اجرا کنید. البته توصیهی من این است که از ابزارهای آنلاین استفاده کنید؛ چراکه در هر نقطهای از دنیا به پروژههایتان دسترسی دارید و البته خیالتان راحت است که یک نسخهی پشتیبان از پروژهتان هم در یک جای دیگری از دنیا نگهداری میشود. از سیستمهای آنلاین معروف ورژن کنترل، Github و Gitlab هستند. اولی دارای امکانات بیشتری است و استفادهکنندگان بسیاری در سرتاسر دنیا دارد. البته برای آنها که به دنبال سرویسهای رایگان هستند، باید عرض کنم در Github فقط پروژههایی که به صورت عمومی در دسترس هستند، رایگان سرویسدهی میشوند. پس اگر به دنبال سرویسی رایگان حتی برای پروژههای غیرعمومی هستید، به شما Gitlab را پیشنهاد میکنم.
آیا میشود از دستورات Command Line خلاص شوم؟
ابزارهای ورژن کنترل بهطور معمول از دستورات تحت Command Line برای ایجاد و ثبت تغییرات پروژه استفاده میکنند. اما اگر شما هم مثل من از محیط CMD و Bash فراری هستید، پست زیر از بلاگ نوبی مناسب شماست! در این پست چگونگی استفاده از ابزارهای ورژن کنترل با استفاده از محیطهای گرافیکی آموزش داده شده است:
نان، گیت و موتور هزار
در ادامه همین مطلب را بازنشر میکنیم:
نحوه ساخت اکانت Gitlab
اول- اکانت گیت لب
سامانههای گیت زیادی در دسترس است. معروفترین آنها، GitHub است. یکی از مشکلات این سامانه، دریافت هزینه برای پروژههایی است که دسترسی آنها محدود به خودتان است (Private). من هم چون ترجیح میدهم بابت این موضوع دلاری خرج نکنم، از سامانهی دوست داشتنی GitLab استفاده میکنم. این سامانه برای تمام پروژههای شخصی و عمومی رایگان است. در ضمن لوگوی زیبایی هم دارد :). پس لطفا به GitLab بروید و یک اکانت برای خودتان بسازید.
دوم- ایجاد پروژه در گیت لب
در همان صفحهای ابتدایی پس از Login نمودن، میتوانید دکمهی New Project را مشاهده نمایید. بر روی آن کلیک کنید تا صفحهای مشابه عکس زیر ببینید:
یک اسم مناسب پروژهتان انتخاب کنید و حتما یک توضیح خوب برای پروژه بنویسید. میدانم که الان در دل پروژه هستید و همهچیز مثل روز برایتان روشن و بدیهی است، اما یک سال که بگذرد همهچیز فراموش میشود؛ پس برای آن روز بنویسید. دسترسی پروژه را هم در انتها مشخص کنید. البته این مورد اخیر را هر وقت که بخواهید میتوانید تغییر دهید.
سوم- اضافه کردن فایلها به گیت لب
خوب حالا به بخش اصلی ماجرا میرسیم. آنها که حرفهای تر هستند، از دستورات CommandLine در این بخش استفاده میکنند، اما آنهایی که مثل من به دنبال برنامههای گرافیکی هستند، لطفا ابتدا برنامهی رایگان SourceTree را دانلود کنند. برنامه را باز کنید و از منوی File بر روی دکمهی Clone/New کلیک کنید.
برای پر کردن فیلدهای این قسمت لازم است که دوباره به گیتلب و صفحهی پروژهتان برگردید. در آن صفحه یک آدرس اختصاصی برای پروژه شما ایجاد شده است که لازم است آن را در قسمت Source Path/URL در برنامهی SourceTree وارد کنید:
این هم صفحهی وارد کردن آدرس پروژه در SourceTree که از مسیر File/Clone-New به آن رفتهایم:
خوب حالا همهچیز آماده است. هر فایلی که میخواهید را به پوشهی ایجادشده در کامپیوترتان منتقل کنید. پس از آن نوبت به همگام کردن این فایلهای موجود بر روی کامپیوتر با سرورهای گیتلب میرسد. هر تغییری که در پروژه میدهید و میخواهید آن تغییر بهعنوان یک نقطهی قابل بازگشت ثبت شود، دو کار برای آن باید انجام شود:
Commit: این اقدام، باعث ثبت تغییرات در یک فایل داخلی (موجود بر روی کامپیوتر شما) میشود. هر بار که این اقدام را انجام میدهید لازم است تا توضیحی در مورد این تغییر بنویسید. تنبلی نکنید و یک توضیح مناسب بنویسید، مطمئن باشید بعدها از آن استفاده خواهید کرد. این توضیحات به همراه تغییرات فایلها ثبت شده و قابلدسترسی است.
Push: تغییرات ثبتشده بر روی کامپیوتر با سرورهای گیت همگام میشود.
برای مثال، به پروژهی تست خودم، یک فایل به نام main.c اضافه میکنم. بهمحض اضافه کردن این فایل، در برنامهی SourceTree این مورد گزارش میشود. با انتخاب این فایل و نوشتن یک توضیح مناسب، این موضوع را Commit میکنم.
حالا وقت همگامسازی با سرورهای گیت است. فقط کافی است دکمهی Push را فشار دهید. کار تمام است. میتوانید فایل اضافهشده را در صفحهی پروژهی گیت لب هم مشاهده نمایید.
ازاینپس، با هر تغییری در پروژهتان و ایجاد یک نقطهی قابلدسترس، کافی است مراحل Commit و Push را تکرار کنید. دنیایتان عوض خواهد شد! 🙂
سلام
تاریخ ایجاد این پست ۳ مهر ۱۴۰۲ هست اما کامنت دوستان سال ۱۳۹۶ !
چون اینجور اطلاعات با بروز بودن ساده تر و کاملتر میشن خیلی مهمه آخرین امکانات روی گیت و نرم افزارهای اتصال به گیت رو با خبر بشیم
این خبر مال سال ۱۳۹۶ هست یا ۱۴۰۲؟
تاریخ ایجاد این پست 19 مرداد 1396 هست.
مرسی خیلی ساده و عالی توضیح دادین.
سلام دوست عزیز
ممنون بابت راهنماییتون.
موفق و سربلند باشید.
سلام
ممنون .
راستی فرق بین fetch , Pull رو هم میشه توضیح بدید؟
ببخشید ما تازه کارا سوالای سطح پایین می پرسیم.
امیدوارم همیشه موفق و فعال باشید.
این دو دستور برای به روز رسانی دیتابیس گیت موجود در کامپیوتر شخصی شما کاربرد دارند، تا آن را با سرور هماهنگ سازند. برای دانستن تفاوت این دو میتوانید به لینک زیر مراجعه کنید:
https://stackoverflow.com/questions/292357/what-is-the-difference-between-git-pull-and-git-fetch
سلام
ممنون از آموزشتون . لطفا ادامه بدید.
یه سوال داشتم :
چطور می تونم یه گروه خصوصی تو گیت لب بسازم.؟
برای این کار کافی است تا یک پروژه ی شخصی برای خودتان ایجاد کنید و سپس از طریق منوی Memebr در خود سایت Gitlab، هر کسی را که تمایل دارید به پروژه اضافه نمایید. توجه داشته باشید که برای هر نفر، سطح دسترسی هم میتوانید تعیین کنید.
با سلام
نرم افزار sourcetree به gitlab وصل میشه ؟
به نظرم فقط به github و bitbucket وصل میشه.
اگر ممکنه راهنمایی کنید.
سلام
اگرچه این نرم افزار برای یک سری ابزار خاص طراحی شده و gitlab در لیست آن نیست، اما چنانچه در هنگام نصب سورس تری، اطلاعات اکانت gitlab خود را داده باشید، لینکهای https مربوط به gitlab را خواهد شناخت. همین الان من از سورس تری برای اتصال به Gitlab استفاده میکنم.