گیت چیست؟

گیت چیست؟

در این پست شما با گیت و کاربردهای آن آشنا خواهید شد اگربا دنیای متن باز آشنا هستید ممکن است با پروژه هایی برخورد کرده باشید که کد آن ها در گیت برای استفاده ی سایرین منتشر شده است در واقع حتی اگر نام گیت را نشنیده باشید باید بدانید که قطعاً از نرم افزاری که در گیت توسعه یافته شده باشد استفاده کرده اید کرنل لینوکس فایرفاکس کروم و بسیاری از پروژه های دیگر کدهای خود را در مخزن گیت به اشتراک گذاشته اند

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


سیستم کنترل ورژن چیست؟

گیت، اولین و بهترین نوع از سیستم‌های کنترل ورژن (VCS) می باشد. سیستم‌های کنترل ورژن زیادی وجود دارند که از آن جمله می‌توان به CVS، SVN، Mercurial، Fossil و البته گیت (Git) اشاره نمود.
گیت به عنوان شالوده ی سرویس های زیادی مثل گیت هاب (GitHub) و گیت لب (GitLab) عمل می کند، اما می‌توان از گیت به تنهایی هم استفاده نمود. این امر بدین معناست که می‌توان از گیت به صورت عمومی یا خصوصی بهره برد.
اگر تا به حال در ساخت و ویرایش یک پروژه ی دیجیتالی با دیگران مشارکت داشته اید،‌ روند کار گیت را به راحتی درک خواهید کرد. ایده ی کار بسیار ساده است: شما یک ورژن از پروژه ی خود را دارید، آن را برای همکار خود ارسال می کنید، همکار یا همکاران شما اصلاحات لازم را اعمال می‌کنند و اکنون دو ورژن از این پروژه موجود است. اصلاحات پیشنهادی برای شما ارسال می‌شود و در صورت تأیید شما، این دو پروژه با هم ادغام شده و در نهایت یک ورژن از پروژه باقی می ماند.
حال تصور کنید مادامی که شما در حال اصلاً پروژه هستید، همکارتان هم تغییراتی را به ورژن خود اعمال کند. حال با سه ورژن از پروژه مواجه خواهید شد:

  • ورژن ادغام شده
  • ورژنی که شما تغییر داده‌اید
  • ورژنی که همکارتان تغییر داده است

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

 

اسنپ شات در گیت

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

 

گیت به صورت توزیع شده عمل می کند

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

 

رابط گیت

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

$ git --version
git version 2.9.0


احتمالاً مشهورترین رابط های کاربری گیت را تحت عنوان گیت هاب، گیت لب، بیت باکت، سورس فورج، و سوانا می‌شناسید که همگی مبتنی بر وب بوده و مدیریت کد را به صورت آنلاین فراهم می کنند. رابط کاربری گیت لب به شکل زیر می باشد:

علاوه بر این، امکان این وجود دارد که یک رابط شخصی دل خواه (که مبتنی بر HTML نباشد) طراحی کرد و دیگر از مرورگرها برای بهره بردن از گیت استفاده نکرد. یکی از بارزترین ویژگی‌های گیت، پشتیبانی از سیستم مدیریت فایل می باشد. برای مثال، در شکل زیر، سیستم مدیریت فایل دولفین می‌تواند وضعیت یک دایرکتوری خاص در گیت را نمایش دهد، و حتی وظایف را ایجاد، ارسال، واکشی و به عهده ی شخص خاصی قرار دهد.

در اسپارکل شیر (Sparkleshare) هم از گیت به عنوان شالوده ی اصلی این رابط اشتراک فایل (مشابه با دارپ  باکس) استفاده شده است.

برای دیدن لیست کاملی از پروژه های گرافیکی گیت، به گیت ویکی (Git Wiki) مراجعه نمایید.

 

چه کسی می تواند از گیت استفاده کند؟

شما می‌توانید! هر کسی می‌تواند از گیت استفاده کند. سؤال اصلی این است که چه زمانی؟ و برای چه منظوری؟

 


.

منبع خبر: opensource

مریم بهزادی

مریم بهزادی

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


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر