گیت چیست؟ ممکن است شما هم نام Git را شنیده باشید و متوجه شده باشید که بسیاری از برنامهنویسان از این ابزار در توسعه اپلیکیشنهای خود استفاده میکنند اما آیا وقت آن نشده است که شما هم کار با گیت را یاد بگیرید؟ اگر برنامهنویس هستید، یادگیری آن بسیار ضروری است و باید هر چه سریعتر شروع به یادگیری آن کنید. یادگیری و آموزش گیت و گیت هاب میتواند جهشی بزرگ در تبدیل شدن به یک برنامهنویس حرفهای خواهد داشت.
جالب است بدانید که گیت ابزاری است که نه تنها برای برنامهنویسان، بلکه تمام اقشار جامعه قابل استفاده است. به کمک گیت میتوانید فایلهای خود را با مدیریت دقیقتری بر روی یک سرور میزبان گیت قرار دهید و هر زمان که خواستید، شما و دیگران به فایلها دسترسی داشته و در صورت نیاز تغییرات را اعمال کنند و Repository را آپدیت کنند.
خب قبل از اینکه توضیحات بیشتری بدهیم، اجازه دهید که توضیحات را در ادامه بررسی کنیم. با ما همراه باشید.
فهرست مطالب
گیت چیست؟ معنی Git چیست؟
گیت یک سیستم کنترل نسخه یا Version Control System است. به زبان ساده، به کمک گیت میتوانید پروژههای خود را بسیار راحتتر بین خود و سایر هم تیمیهای خود و همچنین سرور همگام کنید و نسخههای مختلف پروژه را مدیریت کرده تا توسعه بسیار راحتتر، سادهتر و در برخی موارد امکان پذیر گردد.
بگذارید یک مثال بزنیم تا همه چیز برایتان روشن شود. فرض کنید یک پروژه وب سایت را در حال توسعه با هم تیمیهای خود هستید و میخواهید همه به صورت مشترک بر روی یک پروژه کار کنند. برای مثال یک نفر بخش بکاند را با لاراول توسعه دهد و یک نفر نیز بخش فرانتاند را با ویو جیاس توسعه دهد و یک نفر نیز یک API خاص را توسعه دهد. خب چطور میخواهید کدها به سرعت بین همتیمیها دائما همگام سازی شود و هیچ مشکلی نیز به وجود نیاید و اگر هم مسئلهای وجود داشت، قابل برگشت و بررسی مجدد باشد؟
قطعا این فکر احمقانهای است که هر بار با یک تغییر در پروژه، بخواهید فایلهای مورد تغییر را پیدا کنید و آنها را به هم تیمیها بدهید تا بر روی پروژه لوکال خود منتقل کنند تا پروژه آنها نیز بهروز شود. شاید هم به این فکر کنید که هر بار پروژهها را فشرده کرده و برای هم تیمیها بفرستید تا تغییرات را انجام دهند. خب قطعا یکی از مسائل چنین کاری، امکان اختلال و ایجاد مشکل خواهد بود. شاید یکی از شما یکی از فایلها را به درستی در جای خود قرار ندهد تا همین مسئله باعث بروز مشکلات بعدی و ناهماهنگیها شود.
بنابراین این فکر چندان جالبی نخواهد بود. چاره چیست؟ چاره یک سیستم کنترل نسخه مانند Git است که به راحتی میتواند تمامی مسائل را با چند خط کد حل کند.
پس اگر یک برنامهنویس هستید، یادگیری گیت ضروری خواهد بود.
گیت با گیتهاب تفاوت دارد
یک نکتهای که باید در نظر گرفت این است که Git با Github متفاوت است. گیتهاب یک سایت میزبانی گیت است که امکان استفاده از گیت را به صورت مخزنهای عمومی و خصوصی فراهم میکند یعنی میتوانید از ابزار گیت برای مدیریت مخزنها (Repository) استفاده کنید.
مفاهیم ابتدایی گیت
اجازه بدهید با مفاهیم اولیه گیت آشنا شویم و در پست بعدی با دستورات گیت آشنا شویم.
Commit
هر نسخه از پروژه شما به کمک یک کامیت انجام میشود. برای هر Commit نیز یک پیغام خواهید نوشت که شما میتوانید با آن پیغامی که برای آن نسخه تعیین میکنید، تغییرات را تشخیص دهید. تمام کامیتهایی که شما بر روی هاست گیت خود انجام میدهید، به یکدیگر متصل هستند و با یک شناسه منحصربفرد جدا میشوند.
تمام این نسخهها به صورت پشت سر هم به یکدیگر متصل میشوند و شما میتوانید کامیتهای مختلف را با هم مقایسه کنید و تغییرات را با هم مقایسه کنید.
Branch
در گیت ما یک شاخه اصلی یا Master از پروژه را داریم و میتوانیم شاخههای فرعی را نیز داشته باشیم. هر شاخه فرعی میتواند برای توسعه پروژه بدون اختلال در پروژه اصلی استفاده کرد.
فرضا شما یک وب سایت دارید که در حال توسعه آن هستید ولی در حال افزودن امکانات و فیچرهای تستی به وب سایت هستید. طبیعتا در زمان توسعه و تست نباید نسخه اصلی وب سایت تحت تاثیر قرار بگیرد. شما و هم تیمیهای شما در حال توسعه بخشی متفاوت هستند که تا نهایی نشدن تغییرات، نباید بر روی شاخه اصلی که همان نسخه اصلی وب سایت است، قرار بگیرد.
طبیعتا در چنین شرایطی شما در یک Branch متفاوت توسعه خود را انجام میدهید و پس از تکمیل تغییرات، آن را بر روی نسخه اصلی منتقل میکنید. در چنین شرایطی شاخهها بدون اختلال در کار یکدیگر، به راحتی توسعه داده میشوند و در نهایت بر روی نسخه اصلی قرار میگیرند.
Repository
مخازن در GIT شامل مجموعه ای از فایل ها از نسخههای مختلف پروژه است. این فایلها از مخزن به سرور محلی کاربر برای به روز رسانیها و تغییرات بیشتر در محتوای فایل وارد میشوند. یک VCS یا سیستم کنترل نسخه برای ایجاد این نسخهها و ذخیره آنها در یک مکان خاص به نام مخزن (Respository) استفاده میشود.
به زبان ساده، شما میتوانید یک Repository را در یک میزبان گیت ایجاد کنید و تمام تغییرات، کامیتها، برنچها و... بر روی آن Repository قرار میگیرد. بنابراین تمام فایلها و تغییرات پروژه شما روی این مخزن قرار خواهد گرفت.
نحوه نصب گیت
احتمالا شما هم به دنبال نصب گیت در ویندوز 10 و نصب گیت روی cmd باشید و یا ممکن است بخواهید Git را بر روی سرور لینوکس نصب کنید. در هر صورت ما روش نصب گیت روی لینوکس و ویندوز را به شما آموزش خواهیم داد.
آموزش نصب گیت در ویندوز
- برای نصب Git بر روی ویندوز کافیست که نصب کننده گیت را دانلود کنید.
- پس از دانلود نصب کننده گیت و اجرای آن، یک صفحه نصب ابزار گیت به شما نمایش داده میشود. کافیست مراحل را Next کنید و در نهایت Finish کنید تا گیت شروع به نصب شدن کند.
- سپس به cmd را باز کنید و عبارت git --version را وارد کنید. اگر دستور اجرا شد و ورژن نصب شده git را بر روی محیط ترمینال ویندوز مشاهده کردید، پس گیت با موفقیت نصب شده است.
آموزش نصب گیت در لینوکس
در ادامه بررسی خواهیم کرد که چگونه گیت را بر روی نسخههای مختلف لینوکس نصب کنیم.
آموزش نصب Git در Debian یا Ubuntu به کمک apt-get
برای نصب گیت به کمک apt-get دستورات زیر را در ترمینال (یا SSH) وارد کنید:
پس از اجرای دستورات بالا، برای اطمینان حاصل پیدا کردن از نصب موفقیت آمیز گیت، دستور زیر را وارد کنید:
اگر ورژن گیت را مشاهده کردید، پس گیت با موفقیت نصب شده است.
آموزش نصب Git در Fedora به کمک yum یا dnf
اگر سیستم عامل شما Centos است، گیت را میتوانید از yum نصب کنید.
برای نصب Git به کمک yum دستور زیر را وارد کنید:
برای نصب Git به کمک dnf دستور زیر را وارد کنید:
پس از اجرای دستورات بالا، برای اطمینان حاصل پیدا کردن از نصب موفقیت آمیز گیت، دستور زیر را وارد کنید:
اگر ورژن گیت را مشاهده کردید، پس گیت با موفقیت نصب شده است.
مفهوم Gitflow
Gitflow یک مدل انتزاعی از گیت برای مدیریت و merge شاخهها (Branch) است. فرض کنید که شما یک پروژه دارید که نیاز به وجود چندین شاخه مختلف از همان پروژه باشد. برای مثال یک شاخه برای توسعه و دیباگ اپلیکیشن تا رسیدن به نسخه Production باشد و یکی از شاخهها نیز، شاخه اصلی اپلیکیشن Production باشد. برای اینکه تداخلی در شاخهها ایجاد نشود، میتوان آنها را در دو شاخه مدیریت کرد و هر زمان که نیاز شد، فایلها را در شاخه دیگر نیز Merge کرد.
Gitflow یک ابزار خط فرمان است که باید آن را بر روی سیستم عامل خود نصب کنید. برای دانلود گیت فلو میتوانید آن را بر روی ویندوز دانلود و نصب کنید.
پس از اینکه Gitflow را نصب کردید، برای آماده سازی Gitflow برای پروژه خود باید دستور git flow init را اجرا کنید. اجرای این خط فرمان باعث میشود که شاخهها (Branches) بر روی پروژه شما ساخته شوند.
کلام آخر
احتمالا شما هم با سایتهایی مثل گیت هاب و گیت لب آشنا شدهاید و به دنبال یادگیری کار با آنها هستید و از خود میپرسید گیت چیست. در درجه اول شما باید با ابزار گیت آشنا شوید و از فواید گیت در توسعه پروژه استفاده کنید. یادگیری گیت میتواند درک بسیار زیادی از آموزش گیت هاب و گیت لب به شما بدهد.
گیت ابزاری است که میتواند توسعه پروژه را برای شما بسیار راحتتر کند و اگر وب سایت دارید، نصب گیت روی سرور میتواند آپدیت سایت شما را بسیار راحت کند.
اگر شما هم به دنبال آموزش git در Visual Studio، میتوانید با دیدن این آموزش، درک بهتری از گیت داشته باشید.
در این آموزش نحوه نصب گیت، دانلود گیت و نصب گیت بر روی ویندوز، لینوکس و مک را آموزش دادیم. در پستهای بعدی با دستورات گیت بیشتر آشنا خواهیم شد. با ما همراه باشید.