Git چیست؟

BirHosting git
توسط

از توسعه دهندگان وب گرفته تا برنامه نویسان، گیت (Git) برای هر کسی که کد مینویسد یا تغییرات پرونده ها را ردیابی می کند مفید است. ولی چه چیزی در مورد آن وجود دارد و چرا باید شروع به استفاده از آن کنید؟

Birhosting what is git

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

گیت چیست؟

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

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

Birhosting what is git

راه های استفاده از گیت

گیت نرم افزاری است که می توانید از طریق یک خط فرمان (ترمینال) یا یک برنامه دسکتاپ که دارای رابط کاربری گرافیکی است مانند Sourcetree است ، به آن دسترسی پیدا کنید.

 

مخازن گیت

مخزن گیت (یا به طور خلاصه repo) شامل تمام پرونده های پروژه و کل سابقه ویرایش است. شما یک پوشه معمولی از پرونده ها را می گیرید (مانند پوشه ریشه یک وب سایت) ، و به گیت می گویید که آن را به عنوان یک مخزن ایجاد کند. این یک زیر پوشه .git ایجاد می کند، که شامل تمام داده های گیت برای ردیابی تغییرات است.

در سیستم عامل های مبتنی بر یونیکس مانند macOS ، پرونده ها و پوشه هایی که با یک دوره شروع می شوند (.) پنهان هستند، بنابراین شما پوشه .git را در macOS Finder مشاهده نخواهید کرد مگر اینکه فایل های مخفی نشان دهید. شاید بتوانید آن را در بعضی از ویرایشگرهای کد مشاهده کنید.

 

گیت هاب چیست؟

گیت هاب محصولی است که به شما امکان می دهد پروژه های گیت خود را در جایی (یا به عبارتی در ابر) در یک سرور از راه دور میزبانی کنید.

مهم است که به یاد داشته باشید که گیت هاب، گیت نیست. گیت هاب فقط یک سرویس میزبانی است. شرکت های دیگری هستند که خدمات میزبانی را ارائه می دهند که همان گیت هاب را انجام می دهند ، مانند Bitbucket و GitLab.

 

استیج و اعمال فایلها

به گیت فکر کنید که لیستی از تغییرات پرونده ها را نگه داشته است. بنابراین چگونه به گیت بگوییم تغییرات ما را ثبت کند؟ به هر تغییر ثبت شده در یک فایل یا مجموعه فایلها، commit گفته می شود.

قبل از انجام commit، باید به گیت بگوییم که می خواهیم چه فایلهایی را commit کنیم. این قسمت استیج بندی نامیده می شود و از دستور add استفاده می کند. چرا باید این کار را انجام دهیم؟ چرا ما نمی توانیم پرونده را مستقیماً commit کنیم؟ بگذارید بگوییم شما روی دو فایل کار می کنید، اما فقط یکی از آنها آماده است. شما نمی خواهید مجبور به اعمال هر دو فایل شوید، فقط می خواهید فایلی که آماده است را اعمال کنید. در اینجاست که دستور  add به کار می آید. ما فایل ها را به یک استیج اضافه می کنیم و سپس فایل هایی را که استیج بندی شده اند اعمال می کنیم.

 

مخازن از راه دور (در GitHub و Bitbucket)

ذخیره یک کپی از repo Git خود با یک میزبان آنلاین (مانند GitHub یا Bitbucket) مکانی را در مرکز قرار می دهد که می توانید تغییرات خود را بارگذاری کرده و تغییرات را از دیگران بارگیری کنید و به شما امکان می دهد با توسعه دهندگان دیگر به راحتی همکاری کنید. بعد از اینکه یک مخزن از راه دور راه اندازی کردید، پرونده های خود را بارگذاری می کنید و تاریخچه تجدید نظر را در آن بارگذاری می کنید. بعد از اینکه شخص دیگری تغییراتی در یک repo از راه دور ایجاد کرد، می توانید تغییرات آنها را در repo محلی خود بارگیری کنید .

Birhosting what is git

چند شاخه شدن و ادغام

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

هنگامی که دو شاخه را ادغام می کنید (یا یک شاخه محلی و از راه دور را ادغام می کنید) گاهی اوقات ممکن است درگیری ایجاد کنید. به عنوان مثال، شما و یک توسعه دهنده دیگر ناآگاهانه هر دو روی یک قسمت از پرونده کار می کنند. توسعه دهنده دیگر تغییرات خود را به repo از راه دور وارد می کند. وقتی آنها را به سمت repo محلی خود بکشید با تداخل ادغام روبرو خواهید شد. خوشبختانه Git روشی برای کنترل تعارضات دارد ، بنابراین می توانید هر دو مجموعه از تغییرات را ببینید و تصمیم بگیرید که کدام یک را نگه دارید.

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

این امکان به شما اجازه می دهد تا ده ها یا شاید صدها برنامه نویس در لحظه بر روی پروژه شما کار کند و نسخه بهبود یافته را برای شما ارسال کند.

پس از آن دیگر به شما بستگی دارد که آن نسخه از تغییرات را بپذیرید یا خیر.

 

درخواست های Pull

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

 

جمع بندی

یک انتقاد رایج از Git این است که یادگیری آن دشوار است. برخی از اصطلاحات در گیت برای تازه واردان جدید است و برای کاربران سیستم های دیگر، اصطلاحات گیت ممکن است متفاوت باشد، به عنوان مثال، بازگشت در گیت معنایی متفاوت از SVN یا CVS دارد. با این وجود، گیت بسیار توانمند است و قدرت زیادی را در اختیار کاربران خود قرار می دهد. یادگیری استفاده از این پلتفرم می تواند مدتی طول بکشد، اما پس از آموختن، این قدرت می تواند توسط تیم مورد استفاده قرار گیرد تا سرعت توسعه آنها را افزایش دهد.


پست های توصیه شده