معرفی گیت

مقدمه و معرفی گیت – بخش اول

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

تا حالا شده وقتی شروع به ساختن پروژه جدید می کنید به این سوال برخورد کنید که : وقتی نیاز به بازیابی نسخه‌ی قدیمی از یک فایل رادارم، چه‌کاری رو میتونم انجام بدم؟

معمول‌ترین روش، ذخیره‌ی فایل‌های متعدد با تاریخ و نام‌های متفاوت است، اگرچه، این روش سخت و مشکل‌آفرین است مخصوصاً زمانی که با صدها فایل کار می‌کنیم، مدیریت آن‌ها غیر ممکن می‌شود.

  • Text Hover

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



گیت چیست ؟

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


پس از ایجاد پروژه خود در سورس گیت، شما قادر خواهید بود تمام تغییرات و تاریخ ها را ذخیره کرده و وضعیت و نسخه هر کدام را بررسی کنید.

  • Text Hover

انباره های تحت سرور و محلی

سورس گیت دارای دو نوع repository مختلف است:

انباره‌ی راه دور: انباره ای که روی یک سرور غیر محلی که بین تیم های مختلف به اشراک گذاشته شده قرار دارد.

انباره‌ی محلی: انباره ای که بر روی دستگاه محلی کاربر قرار دارد.

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

  • Text Hover

ایجاد یک انباره(repository)


دو راه برای ساخت یک انباره‌ی محلی وجود دارد.

می‌توانید یک انباره جدید را از ابتدا بسازید یا و یا اینکه انباره ای که قبلا ایجاد کرده اید را درون ریزی کنید. عملیات ذخیره به شما این امکان را می دهد که تغییرات خود را در تاریخچه سورس گیت ثبت کنید.

با ثبت هر تغییری، شما و دیگر اعضای تیم قادر خواهید بود تمامی تغییرات در یک فایل یا فولدر را در طول زمان های مختلف مشاهده کنید.

ثبت تغییرات (commit)

ایجاد تغییرات در workingTree تا زمانی که در index ثبت نشوند ثبت نهایی نخواهند شد. Index به شما این امکان را می دهد تا قسمتی از فایل های خود را ثبت کنید.

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

زمانی که شما تغییرات خود را commit می کنید، لازم است تا یک پیام را برای Commit خود مشخص کنید. این پیام توضیح مختصری از تغییراتی که ایجاد کرده اید را شامل می شود.

commit message به شما کمک می کند تا علت تغییراتی که در یک فایل یا پوشه داده اید را متوجه شوید. همچنین می تواند در زمانی که شما یا تیمتان تغییرات خود را بازبینی می کنید بسیار مفید باشد. سعی کنید از پیام های مختصر و مفید استفاده کنید. Working tree شامل تمام فایل هایی می شود که شما در حال حاضر در حال کار کردن روی آن ها هستید.

Index محیط عملیاتی شما است که commit های جدید در آن ایجاد می شوند. در واقع به صورت یک رابط کاربری بین repository و workingTree است.

درون ریزی یک انباره(Clone a remote repository)

اگر یک انباره‌ی غیر محلی یا remote repository از قبل موجود باشد، می توان کپی ای از آن را بر روی سیستم خود بارگذاری کرد و با آن کار کرد.

شبیه‌سازی (clone)

با استفاده از دستور “clone” می توانید یک کپی از انباره‌ی غیر محلی (remote repository) بسازید

به طور پیش فرض، دستور “clone” به طور خودکار یک شاخه مستر محلی ایجاد کرده که شاخه ی مستر غیر محلی ای که از آن برگرفته شده را دنبال می‌کند.

نکته: یک انباره‌ی شبیه‌سازی شده دارای لاگ تاریخچه ی مشابه نسخه‌ی غیر محلی آن می‌باشد. شما می‌توانید به هر یک از Commit های آن ها باز گردید.


واردکردن و دریافت کردن (push/pull)

برای اشتراک تغییراتی که اعمال کردیم نیاز به واردکردن آن‌ها به انباره‌ی غیر محلی با دستور “push” داریم؛ که باعث می‌شود انباره غیر محلی/خارجی اطلاعات خود را آپدیت و با انباره محلی sync یا همگام کند


 وقتی یکی از اعضای تغییرات خود را در انباره push می کند، شما می توانید آخرین تغییرات پروژه را از طریق عملیات pull کردن دریافت کنید.

 pull همانند عملیات دانلود است که باعث می شود تا انباره محلی شما (local) به روز و آخرین تغییرات پروژه را دریافت کند. دقیقا بعد از این عملیات است که کد های شما با کدهای دیگر اعضای تیم ادغام میشود.

  • Text Hover