محمد جوادی - SMJ
محمد جوادی - SMJ
خواندن ۴ دقیقه·۳ سال پیش

گیت چیست و چرا گیت؟

سلام و روز بخیر خدمت همه شما همراهان عزیز؛ بعد از چند وقت با آموزش کاربردی دیگری در خدمت شما هستم.

امروز اینجا هستیم تا درباره گیت یاد گرفته و بدونیم چطور می‌توانیم تسک‌های خود را مدیریت کرده و پروژه خود را ایمن نگه داریم.

گیت چیست؟

به طوری کلی گیت یه سرور کنترلر یا ابزار مدیریت پروژه‌های دیپلومنت هست که به ما کمک می‌کند راحت‌تر کار‌های دیپلویمنت خود را گسترش داده و مدیریت کنیم.

گیت چه ابزار‌های مهمی به ما می‌دهد؟

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

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

چرا گیت؟

فرض کنید یک لیندینگ پیج در یک سرور دارید و نیاز دارید تا تغییراتی در این لیندینگ پیج انجام دهید.

ابتدا این تغییرات را داخل دستگاه لوکال خود مانند لپتاپ انجام داده و تست می‌کنید و سپس وارد سرور کرده و تغییرات را عینا آنجا انجام می‌دهید.

حال در نظر داشته باشید که در این بین متوجه تغییر یک محتوا در داخل سرور و دستگاه لوکال خود می‌شوید مثلا یک غلط املایی؛ این دقیقا جاییست که گیت به کمک شما آمده و برای شما قابل استفاده می‌شود.

گیت یک ابزار دنبال کننده محتوا بوده که تمامی تغییرات محتوایی در کد‌ها یا فایل‌های ما را در خود ذخیره می‌کند. در سمت دیگر این کار اتفاق، گیت با کنترل ورژن خود به شما این امکان را می‌دهد که هر نسخه مورد نظر از ریپازیتوری خود در هر زمان دسترسی داشته باشید.

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

انواع ریپازیتوری در گیت

در گیت دو نوع ریپازیتوری وجود دارد:

  • ریپازیتوری لوکال
  • ریپازیتوری ریموت

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

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

لوکال ریپازیتوری:

در حالت عادی لوکال ریپازیتوری ۳ قسمت دارد:

  • Working area:
  • Staging area:
  • Committed files:

کامیت چیست؟

هر کاربر در هنگامی که می‌خواهد تغییری در ریپازیتوری انجام دهد باید یک توضیح درباره تغییر خود وارد کند.

وقتی فایل در مرحله کامیت قرار می‌گیرد از قسمت working area خارج شده و وارد مرحله تعیین حالت یا staging area می‌شود.

در ادامه وقتی فایل کامیت شد یا توضیح تغییر این فایل نوشته شد فایل در قسمت commited files قرار خواهد گرفت.

چطور Git را نصب کنیم؟

شما می‌توانید از سایت https://git-scm.com/ ورژن مورد نظر گیت خود را دانلود کرده و نصب کنید.

مثلا برای نصب گیت در مک‌بوک‌ها می‌توانیم از کامند زیر استفاده کنیم:

brew install git

و در توزیع لینوکس اوبونتو نیز می‌توانید از این دستور استفاده کنید:

apt install git -y

برای این که از صحت نصب گیت خود مطمئن شوید لطفا دستور زیر را اجرا کرده تا ورژن نصب شده گیت خود را مشاهده کنید:

git --version

مقداردهی اولیه یا ساخت اولیه یک گیت ریپازیتوری:

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

git init

این دستور یک سری اعمال انجام داده تا داخل همان فولدری که هستید یک ریپازیتوری گیت ساخته شود.

در صورتی که از کامند:

ls -a

استفاده کنید می‌بینید که یک فایل به اسم:

.git

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

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

در ادامه این سری با شما خواهم بود تا بتوانیم کار حرفه‌ای با گیت را یاد گرفته و در پروژه‌های خود استفاده کنیم.

با تشکر از تیم ابرآراز که زمان لازم برای ساخت و نشر این مقاله را به من داد.

تا هفته بعد...

لینوکسگیتبرنامه نویسی
شاید از این پست‌ها خوشتان بیاید