گیت یک سیستم کنترل ورژن یا VCS است که به کمک آن می توانیم پروژه های خود را مدیریت کنیم و به کمک قابلیت Distributed در آن چندین نفر هم زمان بر روی یک پروژه کار کنند و هر یک بخشی از آن را توسعه دهند.
شاید تا کنون نام سایت های Github و یا Gitlab را شنیده باشید که این دو سایت نیز از git بهره برده و این امکان را در اختیار شما قرار می دهند که سرور پروژه شما درون یک ابر ذخیره شود و دسترسی بهتری به پروژه خود داشته باشید.در گیت هاب پروژه ها به صورت عمومی به اشتراک دیگران گذاشته می شود و شما علاوه بر اینکه می توانید پروژه خود را در این سرویس نگه داری نمایید ، به دیگر پروژه ها نیز دسترسی داشته و یک Fork از پروژه دیگران برای خود ایجاد کنید. و پس از توسعه به سازنده پروژه اعلام کنید که در صورت تمایل ، تغییرات شما را در پروژه خود اعمال کند و او نیز پس از بررسی و تایید، تغییرات شما را لحاظ می نماید. بدین صورت می توانید در پروژه های دیگران شریک شوید و به پیشرفت علم کمک کنید ;).
گیت لب علاوه بر این موارد این امکان را به شما میدهد تا پروژه ها را به صورت خصوصی ایجاد کنید و دسترسی و میزان سطح دسترسی را فقط به افرادی که مدنظر شما هستند و با مقداری که شما میخواهید اعمال نمایید.
برای مدیریت پروژه درون کامپیوتر خود نیاز به گیت دارید که به کمک آن تغییرات خود را به پروژه اضافه کنید ، آن ها را ثبت کنید ، لاگ بگیرید ، شاخه های مختلف ایجاد کنید و حتی دیباگ کردن کد را با گیت انجام دهید. گیت به قدری گسترده است که کسی نمیتواند ادعای تسلط کامل بر روی آن را داشته باشد و از سوی دیگر به قدری ساده و کاربردی است که امروزه برای کار در هر شرکتی فراگرفتن آن یک الزام تلقی می شود. لذا اگر میخواهید درون شرکتی استخدام شوید بهتر است ابتدا با دستورات ابتدایی آن آشنا شوید و آن ها را تمرین کنید و به مرور با جستجو در اینترنت مهارت خود را افزایش دهید.
در ادامه برخی از دستورات مهم و کاربردی گیت و توضیحات مختصری از آن آورده شده است که امیدوارم برایتان مفید و کارساز باشد. قبل از شروع از شما انتظار میرود که گیت را درون سیستم خود نصب کرده باشید که برای این منظور میتوانید گیت را از این سایت دانلود نمایید. همچنین برای درک بهتر می توانید از آموزش رایگان آقای جادی میرمیرانی نیز بهره ببرید. این آموزش در سایت فرادرس قرار داده شده است.
1- دستور Clone
برای ایجاد یک کپی از پروژه درکامپیوتر خود می بایست از دستور clone به شکل زیر استفاده کنید:
git clone <URL> for example: git clone //sabri/Server_Git/AstroClock.git
2- دستور Status
برای آنکه وضعیت فایل های درون پروژه را مشاهده نمایید میتوانید از این دستور استفاده کنید
git status
پس از آن سه حالت مختلف را به شما نشان میدهد. حالت اول آن است که شما فایلی را درون پوشه پروژه اضافه نموده اید ولی هنوز آن را به پروژه Add نکرده اید که در این حالت لیستی از این فایل ها را با رنگ قرمز نشان میدهد. حالت دوم آن ست که فایل ها را به پروژه Add کرده اید ولی هنوز commit نشده اند. که در این حالت لیستی از این فایل ها به رنگ سبز نمایش میدهد و حالت سوم آن است که به شما پیام میدهد فایلی برای commit وجود ندارد. در ادامه به مفهوم Add و Commit میپردازیم.
3- دستور Add
پس از آنکه فایلی را اضافه نموده یا آن را تغییر داده اید نیاز است این تغییرات را به پروژه اضافه نمایید . برای این کار باید از دستور Add استفاده نمایید.
git add <file name> for example: git add Readme.md
اگر تعدادی فایل را تغییر داده اید و میخواهید همهی آن ها را با یکدیگر در یک دستور به پروژه اضافه نماید بدین صورت از دستور استفاده نمایید:
git add -A
یا
git add .
4- دستور Commit
پس از اضافه نمودن فایل ها به پروژه نیاز است تا آن ها را با دستور commit و یک پیام که این تغییرات چه چیزی را نشان می دهد درون پروژه ثبت نمایید تا در صورت نیاز، مجددا به این نقطه بازگردید:
git commit -m “<your Descriptions>” for example: git commit -m “Add Readme File “
5- دستور Log
به کمک این دستور میتوانید تمامی commit هایی که تا کنون ثبت شده است و محل قرارگیری هر شاخه و یا tag را مشاهده نمایید. برای این کار به شکل زیر عمل میکنید:
git log
6- دستور Branch
به طور کلی زمانی که پروژه ایجاد می شود یک شاخه اصلی به نام شاخه master دارد و نسخه اصلی پروژه در این شاخه قرار میگیرد. اگر شما در زمانی تصمیم بگیرید که تغییراتی را در پروژه اعمال کنید ولی با نسخه اصلی کار نداشته باشید یک شاخه جدید از master ایجاد میکنید و به آن شاخه رفته و تغییرات خود را اعمال میکنید. در صورتی که تغییرات شما نهایی شد ، به شاخه اصلی master بازگشته و master را با شاخه ایجاد شده ترکیب میکنید تا این تغییرات درون شاخه اصلی نیز اعمال شود. این قابلیت این امکان را به شما میدهد تا چندین نفر بر روی یک پروژه شروع به کار نمایند و شاخه های خود را ایجاد و نهایتا با شاخه اصلی ترکیب نمایند.
دستور زیر تمامی شاخه های درون پروزه را نشان میدهد:
git branch
دستور زیر یک شاخه ایجاد میکند:
git branch <branchName> for example: git branch AddCalender
توجه داشته باشید که با ایجاد شاخه شما به آن منتقل نمیشوید بلکه باید به آن سوویچ کنید که در ادامه توضیحات آن آورده شده است.
7- دستور Checkout
درصورتی که بخواهید میان شاخه ها جابهجا شوید از این دستور میتوانید کمک بگیرید:
git checkout <branchName> for example: git checkout AddCalender
توجه داشته باشید که پس از این دستور در کنار اسم پروژه در محیط git به جای master نام شاخه ای که در آن حضور دارید را نمایش میدهد.
8- دستور Merge
در زمانی که بخواهید دو شاخه را با هم ادغام کنید از این دستور استفاده میکنید:
git merge <branchName> for example: git merge AddCalender
نکته: در زمانی که میخواهید شاخه ای را با شاخه master ادغام کنید ابتدا باید با استفاده از دستور checkout به شاخه master رفته و سپس اقدام به ادغام نمایید.
9- دستور Tag
برای آنکه بتوانیم در هر بخشی که رسیدیم ورژن آن را مشخص کنیم تا در صورت نیاز به آن باز گردیم میتوانیم از دستور tag استفاده نماییم. دستور زیر تمامی tag های موجود را نشان میدهد:
git tag
حال اگر بخواهیم نقطه فعلی را tag بزنیم از دستور زیر استفاده میکنیم:
git tag <tagName> for example: git tag V2.1
10- دستور Push
تغییرات، commit ها و شاخه ها تا زمانی که آن ها را به سرور ارسال نکنید به صورت محلی باقی میمانند و دیگران قادر به دیدن آنها نخواهند بود. لذا نیاز است تا پس از اعمال آن ها از دستور push استفاده نمایید.
git push
11- دستور Pull
دستور pull دوگان دستور push می باشد. و میتوانید آخرین تغییرات را از سرور دریافت نمایید.
git pull
نکته: محلی که پروژه درون سرور قرار دارد در log با نام origin master نشان داده میشود.
12- دستور Init
اگر بخواهید پروژه ای را ایجاد نمایید. ابتدا به پوشه مورد نظر رفته و سپس دستور زیر را وارد میکنید:
git init
در این حالت یک پروژه به صورت محلی برای شما ایجاد می شود. اما اگر بخواهید که یک سرور برای پروژه خود در شبکه محلی ایجاد نمایید نیاز است ابتدا با دستور زیر به ساخت پروژه بپردازید و سپس پوشه ای که در آن قرار دارد را درون شبکه خود به اشتراک بگذارید. حال خود و دیگران با استفاده از دستور Clone میتوانید در پوشه مدنظر خود به پروژه دسترسی داشته باشید.
git init <ProjectName>.git --bare for example: git init AstroClock.git --bare
13- دستور Diff
به کمک این دستور میتوانید تفاوت فایل موجود با آخرین Commit را مشاهده نمایید و خط به خط مقایسه کنید. برای این منظور از دستور زیر استفاده کنید:
git diff <FileName> for example: git diff calender.cpp