undefined
021 33328750 © THE ART OF PROGRAMMING -
بخش دهم : آموزش Git و کنترل نسخه

اگر ما فقط می توانستیم یک ابزار برای هر توسعه دهنده وب مدرن برای یادگیری انتخاب کنیم، آن انتخاب قطعاًGit  بود. Git یک سیستم کنترل نسخه (VCS) است که به شما کمک می کند تا همانگونه که در حین نوشتن و تغییر کد در پروژه خود هستید، اعمال تغییرات در تمام فایل های پروژه تان را مدیریت کنید. Git همچنین دارای مزیتVCS  توزیع شده است، به این معنی که تیم هایی با چند توسعه دهنده و برنامه نویس می توانند Git را برای جلوگیری از بروز مسائل در هنگام کار در یک قسمت از یک برنامه، همزمان استفاده کنند

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

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

 روز بعد شما به دوستتان میگویید چقدر هیجان زده بودید که لیست را ایجاد کنید و همچنین چطور میخواهید لیست او (آنها) را مشاهده کنید، اما لازم نیست که دو (چند) لیست جداگانه داشته باشید، بنابراین شما فایل خود را به آنها ارسال میکنید. یک روز گذشت، و سپس روزی دیگر و شما واقعاً مایلید که این لیست را به شما بازگردانند زیرا شما فکر می کنید که فیلم های بیشتری برای اضافه کردن وجود دارد. شما دیگر نمیتوانید صبر کنید، بنابراین کپی اصلی این لیست را باز کرده و فیلمهای جدید خود را به انتهای آن اضافه می کنید و با خود می گویید: " بعداً قضیه را به شکلی حل می کنم".

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

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

دلیل این فرآیند دو مرحله ای این است که شما می توانید چند فایل را یک باره و با یک دستور ذخیره کنید. شما می توانید یک پیام را برای هر اعمال تغییری تنظیم کنید، مانند " فیلم فرانسیس فورد کوپولا اضافه شد" یا "حذف تکراری"، و شما می توانید لیستی از تمام اعمال را در یک زمان با تایپ کردن git log مشاهده کنید. اگر پیام های خود را هوشمند انتخاب کنید، تاریخچه ای از چگونگی تغییر فایلهای خود، خواهید داشت.

 اما در مورد دوستتان او چگونه همزمان با شما تغییرات را اعمال کند؟ چگونه Git به او کمک می کند؟ این همان جایی است که نسخه توزیع شده کاربرد دارد. با استفاده از سرویس هایی مانند  GitHub، BitBucket یا  GitLab، می توانید یک نسخه کامل از انبارGit  را در وب ذخیره کنید و هر کسی که در پروژه در آن انبار Git  کار می کند، می تواند به آخرین نسخه از تمام فایل های آن پروژه، دسترسی پیدا کند. فرآیند ذخیره یک تغییر هنوز یکسان است : تغییر دهید، ثبت کنید، و سپس آن را اعمال کنید، اما اکنون یک قدم دیگر باقی مانده بود: اعمال این تغییرات به GitHub(یا یکی دیگر ازسرویسهایGit  میزبان) به این ترتیب، دوست شما می تواند ابتدا بررسی کند که هر گونه تغییری را که ایجاد کرده اید به کامپیوتر خود منتقل کند تا قبل از ویرایش آنها تازه ترین نسخه را داشته باشد.

 Git  یک ابزار بسیار قدرتمند است که شما چه به تنهایی و چه در یک تیم بسیار بزرگ به عنوان برنامه نویس مشغول باشید، امروز نیاز به یادگیری و استفاده از Git به صورت روزانه دارید.