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

همانطور که از نام آن پیداست، نسخه کنترل یک سیستم مدیریت کد نرم افزاری است. برای درک بهتر کلمه کنترل نسخه، نسخه های نرم افزار را در نظر بگیرید. هر بار که تغییری در پایه کد ایجاد می کنید، در اصل نسخه جدیدی از نرم افزار را ایجاد می کنید. سیستمی که این تغییرات کد را مدیریت می کند، طبیعتاً یک سیستم کنترل نسخه است.
کنترل نسخه هر تغییر کد را ردیابی می کند. سیستم تغییرات را در نوع خاصی از پایگاه داده کنترل نسخه ذخیره می کند. اگر توسعهدهندهای مرتکب اشتباه شود، به راحتی میتوان به تاریخچه نسخه بازگشت و نسخه را قبل از تغییر بازیابی کرد.
به نوعی، کنترل نسخه مانند “CTRL + Z در استروئیدها” است. نه تنها می توانید تغییرات ایجاد شده در جلسه فعلی را لغو کنید، بلکه می توانید به روزهای اولیه پروژه خود نیز برگردید. اگر یک سال پیش ویژگیای را حذف کردهاید که اکنون میخواهید آن را بازگردانید، میتوانید با کنترل نسخه بدون مشکل این کار را انجام دهید.
توسعه نرم افزار در مقیاس بزرگ بدون کنترل نسخه امکان پذیر نخواهد بود. البته، اگر تازه شروع به کدنویسی کردهاید و با مثالهای اولیه کار میکنید، نیازی به صرف زمان برای نسخههای آنها ندارید. همانطور که گفته شد، یادگیری نحوه عملکرد کنترل نسخه مهم است و باید در اسرع وقت با آن شروع کنید. مهم نیست که در چه موقعیت نرم افزاری قرار می گیرید، باید کنترل نسخه را یاد بگیرید.
کنترل نسخه نه تنها برای رفع اشکالات عالی است، بلکه یک سیستم کلی عالی است که همکاری را تشویق می کند. با یک سیستم کنترل نسخه، هر یک از اعضای تیم می تواند روی شاخه خود کار کند که با برنامه اصلی تداخل نداشته باشد.
توسعه دهندگان نسخه ای از نسخه فعلی نرم افزار را برای ویرایش آن می گیرند. پس از تکمیل ویرایش، نسخه کپی نرم افزار باید با نسخه واقعی نرم افزار ادغام شود. با کنترل نسخه، این کار آسان است. می توانید تغییرات را در نرم افزار اصلی ادغام کنید. اگر تضاد وجود داشته باشد، سیستم کنترل نسخه آنها را به روشی آسان برای درک برجسته می کند.

توسعه دهندگان نرم افزار تغییرات کد را از طریق واتس اپ یا ایمیل ارسال نمی کنند. آنها از کنترل نسخه استفاده می کنند.
اما به خاطر داشته باشید که کنترل نسخه را یک شبه یاد نخواهید گرفت. نیاز به تمرین زیادی دارد زیرا اصطلاحات و مفاهیم جدید زیادی برای برداشتن وجود دارد. برخی از دانشگاه ها حتی دوره های کنترل نسخه دارند. اما هنگامی که بر آن مسلط شدید، دیگر هرگز از استفاده از کنترل نسخه اجتناب نخواهید کرد.
مزایای کنترل نسخه
استفاده از کنترل نسخه یک ضرورت در تیم های توسعه نرم افزار است. این به تیم ها امکان می دهد سریعتر حرکت کنند و سریعتر ارائه دهند. همانطور که تیم توسعه رشد می کند، کنترل نسخه اجازه می دهد تا سرعت حفظ شود. چشم انداز کنترل نسخه در دهه های اخیر بسیار بهبود یافته است. یکی از محبوب ترین سیستم های کنترل نسخه Git است.
در اینجا فواید استفاده از سیستم های کنترل نسخه مانند Git را به طور سریع توضیح می دهیم.
1. بهترین سیستم های کنترل نسخه رایگان هستند
بهترین سیستم های کنترل نسخه رایگان هستند. به عنوان مثال، سیستم کنترل نسخه Git رایگان است. این مانع افراد و همچنین شرکت های بزرگتر برای انطباق با سیستم های کنترل نسخه را کاهش می دهد. علاوه بر رایگان بودن، تنظیم نسخه کنترل آسان است و یادگیری روند کار نسبتاً آسان است.
2. دسترسی به کل تاریخچه پروژه
با کنترل نسخه، می توانید کل تاریخچه یک پروژه یا فایل را ردیابی کنید. تمام تغییرات ایجاد شده در طول سال ها در سیستم کنترل نسخه باقی می ماند. این همچنین برای ایجاد و حذف کل فایل ها صدق می کند.
اطلاعات تاریخچه همراه با جزئیات مربوط به نویسنده، تاریخ، هدف تغییرات و موارد دیگر است.
داشتن چنین تصویر کاملی از تاریخچه نرم افزار امکان ردیابی مسائل را فراهم می کند. علاوه بر این، به روز رسانی نسخه های قدیمی نرم افزار را ممکن می کند.
3. انشعاب و ادغام برای همکاری
یک تیم توسعه نرم افزار را در نظر بگیرید. هر توسعهدهنده فردی باید بتواند همزمان روی یک پایگاه کد کار کند.
اینجاست که کنترل نسخه کمک می کند. سیستم کنترل نسخه به شما امکان می دهد شعبه خود را ایجاد کنید. این یک کپی مستقل از پایگاه کد اصلی است که در آن می توانید بدون تداخل با پایگاه کد اصلی کار کنید. پس از ایجاد تغییرات، می توانید شاخه را دوباره در نسخه اصلی نرم افزار ادغام کنید.
در یک تیم توسعه نرم افزار، هر توسعه دهنده می تواند شعبه خود را ایجاد کند و به طور همزمان در آنجا کار کند. این تنها راه قابل مدیریت برای کار همزمان بر روی نرم افزار است.
بدون انشعاب و ادغام، توسعه دهندگان به معنای واقعی کلمه باید تغییرات کد را به WhatsApp یا ایمیل ارسال کنند. هرج و مرج را تصور کنید.
4. ادغام با ابزارهای مدیریت پروژه
با کنترل نسخه، می توانید هر تغییر کد را به نرم افزارهای مدیریت پروژه و ردیابی اشکال مانند Jira پیوند دهید.
در یک سیستم مدیریت پروژه، میتوانید باگها و بلیطهای وظیفه را برای معرفی ویژگیها و تغییرات جدید ایجاد کنید. شما همچنین می توانید این بلیط ها را به صورت شفاف به توسعه دهندگان اختصاص دهید. همچنین می توانید در بخش نظرات بلیط بحث کنید.
شما می توانید ابزارهای مدیریت پروژه را با یک سیستم کنترل نسخه متصل کنید. این امکان بهروزرسانی خودکار وضعیتهای بلیت اشکال/ویژگی را بر اساس تعهدات انجام شده به پایگاه کد فراهم میکند. به طور کلی، این وضوح توسعه نرم افزار را در تیم ها بهبود می بخشد و تاریخچه کد را حتی بیشتر در دسترس می کند.
محبوب ترین سیستم های کنترل نسخه
در فضای کنترل نسخه، Git غالب است. این محبوب ترین سیستم کنترل نسخه در حال استفاده است. Git با قدرتمندترین مجموعه ویژگی برای توسعه نرم افزار در مقیاس ارائه می شود. اکثر پلتفرم های شخص ثالث از Github پشتیبانی می کنند. علاوه بر این، گردش کار قابل اعتمادترین و نسبتاً آسان برای انطباق است.
در اینجا محبوب ترین سیستم های کنترل نسخه آورده شده است.
- Git
- براندازی آپاچی (SVN)
- دمدمی مزاج
- Perforce Helix Core
- سیستم نسخه همزمان (CVS)
اگر مطمئن نیستید از کجا شروع کنید، با Git شروع کنید. این قابل اطمینان ترین و محبوب ترین سیستم کنترل نسخه است. نیازی به گفتن نیست، استفاده از آن رایگان است!
نمونه ای از کنترل نسخه با Git
بیایید نگاهی گذرا به نحوه عملکرد کنترل نسخه بیندازیم. نکته اصلی در اینجا لزوماً آموزش نحوه شروع استفاده از کنترل نسخه نیست. در عوض، من به سرعت به شما نشان خواهم داد که تنظیم آن چقدر آسان است. همچنین تعدادی از رایج ترین دستورات کنترل نسخه و گردش کار را مشاهده خواهید کرد.
بیایید با یک پوشه پروژه پایتون شروع کنیم پروژه مثال که یک فایل خالی به نام دارد file.py.
برای قرار دادن این پروژه تحت کنترل نسخه، باید ترمینال (یا خط فرمان) را باز کنید و دایرکتوری پوشه پروژه را تغییر دهید. در پوشه پروژه، دستور را اجرا کنید git init:

پروژه نمونه اکنون تحت کنترل نسخه است!
بعد، بیایید جای خالی را درگیر کنیم file.py به پروژه این بدان معنی است که سیستم کنترل نسخه شروع به ردیابی تغییرات می کند file.py. برای commit کردن فایل باید:
- فایل commit را آماده کنید. این اتفاق می افتد با git اضافه کردن نام فایل فرمان
- فایل را با یک پیام commit کنید. این اتفاق می افتد با git commit -m “پیام اینجا”.

در حال حاضر در file.py نظارت برای تغییرات! در مرحله بعد، اجازه دهید مقداری کد به فایل اضافه کنیم. پس از افزودن برخی عملکردها به فایل، میتوانید تغییراتی را که کنترل نسخه مشاهده میکند با تماس بررسی کنید git diff:

Git یک علامت + را در مقابل خطوط کد جدید اضافه شده در نمای ترمینال نمایش می دهد. اینها تغییراتی است که شما ایجاد کردید. اما اکنون این تغییرات به هیچ وجه برچسب گذاری نمی شوند. برای ذخیره این تغییرات در سیستم کنترل نسخه، باید آنها را مشابه نحوه ذخیره فایل خالی انجام دهید:


خطوط جدید کد اکنون در کنترل نسخه ذخیره می شوند. برای اهداف نمایشی، اجازه دهید یک تابع جدید به فایل کد اضافه کنیم. بعد بیا زنگ بزنیم git diff از نو.

Git دوباره تغییرات فایل را در پنجره ترمینال نشان می دهد. خطوط جدید با علامت + مشخص می شوند. بیایید این تغییرات را دوباره انجام دهیم:

برای جمع بندی، شما تاکنون سه تغییر جداگانه در پروژه نمونه خود ثبت کرده اید:
- یک فایل پایتون خالی اضافه کنید.
- یک تابع برای محاسبه مساحت یک دایره اضافه کنید.
- یک تابع برای محاسبه حجم یک دایره اضافه کنید.
برای مشاهده این مستندات در نسخه کنترل، می توانید تماس بگیرید git log:

این به شما سه تغییر جداگانه ای را که در پروژه ذخیره کرده اید (متعهد کرده اید) نشان می دهد.
به اسکرین شات بالا از لاگ ها نگاهی بیندازید. هر commit قبل از خود یک هش منحصر به فرد دارد. می توانید از این هش برای سفر به گذشته استفاده کنید تا ببینید فایل کد پس از تغییر کد خاص چگونه به نظر می رسد. برای مثال، هش commit دوم را در نظر بگیرید و استفاده کنید git checkout hash_id برای سفر به گذشته

همانطور که می بینید، تابع حجم اکنون از فایل کد حذف شده است. این به این دلیل است که قبل از ایجاد تابع ولوم، به گذشته برگشته اید تا ببینید فایل چگونه به نظر می رسد.
برای بازگشت به تعهد قبلی می توانید تماس بگیرید git check –.
عالی! بنابراین اکنون اصول اولیه کنترل نسخه را دیدید. توجه داشته باشید که مثال بالا فقط سطح را خراش می دهد. بسیاری از ویژگیهای مفید دیگر وجود دارد که من به آنها اشاره نکردم تا بتوانم آن را در محدوده خود نگه دارم. آنها عبارتند از:
- بارگذاری پروژه در نسخه ابری Git، یعنی GitHub.
- از همکاران دعوت کنید
- همکاری Codebase با فورکینگ.
- تعاملات را اصلاح، حذف و مرتب کنید.
- بازگرداندن تغییرات.
- ایجاد درخواست های دانلود
و خیلی بیشتر.
جمعش کن
کنترل نسخه سیستمی است که تغییرات کد را پیگیری می کند. این ابزاری است که توسعه نرم افزار را در مقیاس امکان پذیر می کند. هم توسعه دهندگان فردی و هم تیم های توسعه از سیستم های کنترل نسخه سود می برند. مزایای اصلی کنترل نسخه عبارتند از:
- دسترسی به تاریخچه کامل پروژه
- انشعاب و ادغام برای بهبود همکاری
- ادغام با ابزارهای مدیریت پروژه و موارد دیگر
همچنین بهترین سیستم کنترل نسخه، Git، کاملا رایگان است.
با تشکر برای خواندن! امیدوارم هر چه زودتر شروع به یادگیری کنترل نسخه کنید! فقط به یاد داشته باشید که صبور باشید. انتظار نداشته باشید یک شبه بر کنترل نسخه مسلط شوید.
همچنین بخوانید
فرهنگ لغت کدگذاری