گیت چیست ؟
- DOTWEB
گیت
اولین چیزی که باید بدانید این است که گیت (Git) با گیت هاب (GitHub) فرق دارد. خیلیها این دو را یکی فرض میکنند. گیت هاب یک سایت هاست (Host) برای پروژههاست که از گیت استفاده میکند پس این دو را باهم اشتباه نگیرید.
گیت یک نوع سیستم کنترل ورژن (VCS) است که با آن میتوانید تغییرات اعمال شده در فایلها را سادهتر پیگیری کنید. مثلاً، اگر فایلی را ویرایش کنید، گیت میتواند دقیقاً به شما بگوید که چه چیزی تغییر کرده است، چه کسی آن را تغییر داده است و دلیلِ این تغییر چه بوده است که شما بتوانید به صورت دقیق دلیل آن را بررسی کنید.
گیت برای هماهنگ کردن وظایف میانِ اشخاصِ مختلفی که، روی یک پروژه کار میکنند، مفید است. همچنین میتوان با ذخیرهی “Checkpoint” پیشرفتِ پروژه را در طی زمان بررسی کرد. میتوانید از گیت برای نوشتن یک مقاله استفاده کنید، یا وقتی که میخواهید تغییراتِ اعمال شده را، در یک فایل هنری یا طراحی، پیگیری کنید میتوانید آن را از طریق گیت مشاهده کنید.
گیت تنها سیستم کنترل ورژن موجود نیست، اما معروفترین آنهاست. بسیاری از برنامهنویسان به صورت روزانه از گیت استفاده میکنند و بلد بودن آن میتواند تأثیر خوبی روی رزومهی کاریتان داشته باشد و در اکثر شرکت ها یادگیری آن یکی از واجبات نیز میباشد.
در پروژههای پیچیده اشخاص بسیاری به صورت همزمان فایلهای پروژه را تغییر میدهند و این مسئله میتواند گیجکننده باشد. هر کسی که با “Merge Conflict” و سمبلهایی گیجکننده مثل >>>>>>> ======= <<<<<<< برخورد داشته است، میتواند این موضوع را تأیید کند که چقدر میتواند این مسئله پروژه و اشخاص دیگر را به دردسر بیاندازد.
اگر اساس گیت را درک کنید، میتوانید به سادگی علت وقوع این Conflictها را بفهمید و آنها را برطرف کنید.
اهمیت یادگیری گیت
اگر در حال یادگیری Git هستید همیشه سعی کنید ذهن خود را از مواردی که ممکن است در مورد سایر VCS ها وجود داشته باشد مانند: CVS ، Subversion یا Perforce پاک کنید. انجام این کار به شما کمک بسیار مفیدی میکند زیرا این امر موجب میشود که از سردرگمیهای مختلف که ممکن است شما را درگیر خود کنند، جلوگیری شود و ذهنتان متمرکز روی یک cvs شود.
حتی اگر رابط کاربری Git تقریبا شبیه به VCSهای دیگر باشد گیت Git اطلاعات را کاملا به شکلی متفاوت به شما نشان میدهد و شما با دیدن این تفاوت و درک آن، کاملا از سردرگمی خارج میشوید و میتوانید کار خود را به بهترین نحوه انجام دهید و دیگر سردرگم نشوید.
تفاوت عمدهای که میان Git با هر VCS دیگر وجود دارد این است که طرز تفکر گیت در مورد دادههای خود با دیگر VCS کاملا متفاوت است. این ویژگی موجب شده تا گیت به رایجترین سیستم کنترلی در جهان تبدیل شود و اکثر برنامه نویسان از گیت استفاده میکنند.
به طور کلی گیت فقط داده میافزاید
وقتی که کاری در گیت میکنید، تقریباً همه آن افزودن به اطلاعات درون پایگاهداده گیت است. به بیان دیگر، انجام کاری که سیستم نتواند آنرا بازگردانی کند یا اجبار آن به پاکسازی کامل اطلاعات به هر نحو بسیار دشوار است. اما در هر VCS دیگر، شما میتوانید تغییراتی که هنوز کامیت نکردهاید بهم بریزید یا از دست بدهید، اما بعد از اینکه یک اسنپشات به گیت کامیت کردید، از دست دادن آن بسیار مشکل است، بخصوص اگر به طور منظم پایگاهدادهتان را به مخزنی دیگر پوش (Push) میکنید.
اینها همه استفاده از گیت را به یکی از لذتهای دنیوی تبدیل میکند چراکه میدانیم که میتوانیم آزمون و خطای بدون خطر خرابکاری کردن داشته باشیم و هر کاری را به راحتی انجام دهید. برای نظاره عمیق اینکه چگونه گیت دادههایش را ذخیره میکند و اینکه چگونه میتوانید اطلاعاتی که به نظر از دست رفته میآیند را بازگردانی کنید به بازگردانی کارها مراجعه کنید.
چطور گیت را داشته باشم؟
گیت به صورت پیشفرض روی بسیاری از سیستمها نصب شده است. اما اگر آن را روی سیستمتان ندارید:
- اگر دوست دارید از واسط کاربری گرافیکی زیباتری استفاده کنید، نرمافزار GitHub Desktop را امتحان کنید (برای ویندوز و مک). کار با این واسط سادهتر است، اما خُب سختتر میتوان فهمید واقعاً در پشت صحنه چه خبر است.
در این قسمت میخواهیم بخشهای مختلف گیت Git را مورد بررسی قرار دهیم که عبارتاند از:
سیستم کنترل
Git یک ردیاب محتوا است. بنابراین با توجه به این موضوع میتوان از Git برای ذخیره محتوا استفاده کرد. از Git بیشتر به دلیل ذخیره کد و اطلاعات استفاده میکنند.
سیستم کنترل نسخه (Version Control System)
کدی که در Git ذخیره میشود با افزودن کدهای بیشتر تغییر میکند. همچنین بسیاری از توسعهدهندگان میتوانند به طور موازی به Git کد اضافه کنند.
سیستم کنترل نسخه توزیع شده (Distributed Version Control System)
Git دارای یک مخزن از راه دور است که در یک سرور و یک مخزن محلی ذخیره میشود که شما میتوانید آن را در رایانه هر توسعه دهنده مشاهده کنید. این جمله به این معنی است که کد گیت فقط در یک سرور مرکزی ذخیره نمیشود، بلکه به صورت کامل در سیستم شخص توسعهدهنده کپی میشود.
Git Repository چیست؟
Repository ما همان پوشه git. در داخل پوشه پروژه ما است. آن کلیه تغییرات ایجاد شده در فایل های پروژه ما را ردیابی کرده و آن تاریخ را با گذشت زمان ثبت می کند.
مخزنی (repository) که ما در رایانه خود داریم به عنوان مخزن محلی (local repository) شناخته می شود .
استفاده از یک مخزن از راه دور برای اینکه بتوانید با افراد دیگر بر روی پروژه ای همکاری کنید . همچنین در صورت بروز اتفاقی برای لپ تاپ یا رایانه ما ، از پروژه های خود بک آپ داشته باشید ،بسیار مهم است و در دنیای حرفه ای توسعه دهندگان باید از این مخزن استفاده شود.
سخن آخر، Branch در Git چیست؟
شاخه(Branch) یک اشاره گر به commit است. branch پیش فرض در Git با نام master یا main شناخته می شود .
با رفتن به پوشه git. و سپس باز کردن پوشه refs ،سپس باز کردن پوشه heads و در آخر باز کردن فایلی به نام master ، می توانیم ببینیم که branch یک اشاره گر به یک commit است . درون این پرونده خواهیم دید که یک هش وجود دارد. این هش همان هش commit ما است که branch در حال اشاره کردن به آن است.
ما می توانیم یک بار دیگر از دستور git log برای لیست کردن همه commit های در repository خود استفاده کنیم و خواهیم دید که آن هش کنار commit ی که برچسب master بغل آن در پرانتز است ، قرار می گیرد.
در ترمینال با تایپ کردن دستور git branch می توان لیستی از همه branch ها را مشاهده کرد .
شاخه ها واقعاً مهم هستند زیرا همکاری با دیگران و کار همزمان روی چندین ویژگی یا قسمتهای مختلف پروژه شما را بسیار آسان می کند.
با ثبت commit های بیشتر ، branch ای که در آن هستیم به روز می شود تا به آخرین commit ثبت شده اشاره کند.
به صورت خلاصه که اگر توسعه دهنده هستید حتما یادگیری گیت را فرا بگیرید چرا که این کار امری واجب برای شما است همچنین شما میتوانید از طریق صفحه تماس با ما و یا صفحه اینستاگرام با تیم ما در ارتباط باشید.