در قسمت قبل به بررسی انواع سیستم های کنترل نسخه پرداختیم. یکی از قوی ترین نوع از این سیستم ها، سیستم های کنترل توزیع شده هستند که با آن نیز تا حدودی آشنا شدیم. در ادامه با یک VCS توزیع شده به نام Git آشنا خواهیم شد.
داستان تولد Git
BitKeeper یک سیستم کنترل نسخه توزیع شده است که در سال ۲۰۰۰ معرفی شد. در آن سالها یکی از معروف ترین VCS های توزیع شده بود و نسخه Community آن به صورت رایگان در اختیار کاربران بود. همین شهرت یکی از دلایل بوجود آمدن Git شد. در حال حاظر این نرم افزار به صورت متن باز در اختیار همگان قرار دارد. گرچه توسعه آن به کندی انجام می شود. لینک : http://www.bitkeeper.org
توسعه دهندگان kernel لینوکس از BitKeeper استفاده می کردند. در سال ۲۰۰۵ BitKeeper دیگر سورس باز نبود و همچنین از حالت رایگان خارج شده بود. که باعث شد شهرت خود را از دست بدهد.
جامعه توسعه دهندگان با رهبری Linus Torvalds به دنبال نرم افزاری جایگزین بودند ولی نرم افزار جایگزینی نیافتند! پس خودشان دست به کار شدند و Git متولد شد.
گیت یک سیستم کنترل نسخه توزیع شده است که تا حدودی شبیه به BitKeeper عمل می کند. اما سریعتر است و در پروژه های بزرگتر بهتر از BitKeeper عمل می کند. علاوه برا این، طراحی ساده ای دارد و با سیستم branching خود می تواند برای توسعه غیر خطی بسیار مفید باشد(با این مورد در ادامه آشنا خواهیم شد). جامعه توسعه دهنده Git بسیار فعال هستند. لینک : https://git-scm.com
Git چه کار هایی انجام می دهد؟
اما گیت چه توانایی هایی دارد؟ مشکلاتی که در مقاله “ورژن کنترل چیست؟” بررسی کردیم بخاطر دارید؟ Git تمامی آنها را حل میکند. حتی مشکلاتی که تا به حال به آن فکر نکرده اید را نیز حل می کند!
تغییرات را به صورت کامل بررسی می کند:
- می توانید بین نسخه های متفاوت جابجایی داشته باشد و به گذشته فایل های خود سفر کنید!
- می توانید تغییرات یک فایل را ببینید. حتی در کار تیمی.
- می توانید یک نسخه خاص را نشانه گذاری کنید تا راحت به آن دسترسی داشته باشید.
- و…
یکی از امکانات فوق العاده گیت سیستم Branching (شاخه بندی) آن است. هر branch یک کپی از پروژه هست که می توانید بدون ایجاد مشکل روی نسخه اصلی، روی آن کار کنید. به همراه این امکان، امکان دیگری نیز با عنوان Merging نیز وجود دارد. با استفاده از Merging می توانید تغییرات انجام شده روی یک شاخه یا branch را در نسخه اصلی (مخزن) اعمال کنید.
برای مثال فرض کنید میخواهید موردی را روی پروژه خود تست کنید ولی به موفقیت آن اطمینان ندارید. می توانید یک شاخه ایجاد کنید، تغییرات را روی آن اعمال کنید و در صورتی که مشکلی نبود، تغییرات را به نسخه اصلی Merge کنید.
یکی دیگر از امکانات جذاب گیت، Stashing است. با این مورد می توانید تغییرات فعلی را برای مدتی کنار بگذارید.
اکنون تاریخچه ای مختصر از Git را می دانیم و با برخی از امکانات این ورژن کنترل قدرتمند نیز آشنا شدیم. در ادامه این سری مقالات با امکانات گیت بیشتر آشنا خواهیم شد. در قسمت بعد، با نحوه کارکرد Git آشنا خواهیم شد.