گیت (Git) چیست؟
Git یا گیت یک سرویس کنترل نسخه یا Version Control برای فایل های متنی می باشد که اپن سورس بوده و از محبوبیت بی نظیری میان برنامه نویسان در سراسر جهان برخوردار می باشد.
از آنجایی که گیت یک ورژن کنترلر و مناسب فایل های متنی می باشد شما به صورت فردی یا گروهی به هر زبانی که برنامه های خود مینویسید میتوانید از گیت برای کنترل نسخه های پروژه خود استفاده کنید. به طور کلی میتوان ویژگی های منحصر به فردی را به برای گیت متصور بود:
- متن باز و قابل اعتماد بودن
- قابل استفاده در تمامی زبان های برنامه نویسی
- قابلیت بکارگیری در پروژه های خیلی کوچک تا خیلی بزرگ
- توسعه بسیار سریع و منعطف برنامه
- قابلیت استفاده به صورت فردی و گروهی
به طور کلی شما در گیت میتوانید همزمان با تفکیک دولوپرهای مختلف روی کدهای خود بکاپ گیری و مانیتورینگ داشته باشید و تغییرات را در نسخه های مختلف دنبال کنید.
فرض کنید شما مدیر یک پروژه هستید و میخواهید نرم افزار خود را به دولوپرهای مختلف بسپارید. بعنوان مثال ممکن است شما به یک توسعه دهنده فقط بخش طراحی صفحه لاگین سایت را بدهید و به توسعه دهنده دیگر بخش دیگری را بسپارید. در این زمان استفاده از گیت برای شما جهت مدیریت کدها ضروری می باشد.
آموزش نصب و مقدمات گیت
برای نصب گیت در اوبونتو کافیست ابتدا مخازن خود را به روز کرده و سپس آن را نصب کنید:
1 2 |
root@arshatech:~# apt update root@arshatech:~# apt -y install git |
پس از اتمام نصب میتوانید نسخه آن را بررسی کنید:
1 |
root@arshatech:~# git --version |
1 |
git version 2.17.1 |
حال شما ابتدا یک دایرکتوری که میخواهید در آن پروژه خود را ایجاد کنید می سازید:
1 2 |
blog@arshatech:~$ mkdir -p Projects/test blog@arshatech:~$ cd Projects/test |
سپس با دستور زیر وضعیت گیت را بررسی میکنید:
1 |
blog@arshatech:~/Projects/test$ git status |
1 2 |
fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). |
همانطور که مشاهده میکنید مخزنی وحود ندارد. پس برای شروع کار با گیت باید حتما از دستور زیر استفاده کنید:
1 |
blog@arshatech:~/Projects/test$ git init |
1 |
Initialized empty Git repository in /home/blog/Projects/test/.git/ |
حال اگر دستور status را بزنید خروجی زیر را دریافت میکنید:
1 |
blog@arshatech:~/Projects/test$ git status |
1 2 3 4 5 |
On branch master No commits yet nothing to commit (create/copy files and use "git add" to track) |
بعد از init کردن، یک دایرکتوری مخفی با نام git. برای شما می سازد که برخی از تنظیمات گیت برای پروژه شما در آن قرار میگیرد.
معماری گیت
به طور خلاصه برای ذخیره کردن پروژه از حالت توسعه در روی سیستم به یک سرور ریموت چند مرحله وجود دارد:
- Working Directory: فضایی روی سیستم شما می باشد که در حال توسعه نرم افزار خود هستید.
- Staging Area: بعد از تایید کدهای ابتدایی خود آن ها را در فضایی آماده جهت ذخیره نهایی در مخازن محلی میکنیم.
- Local Repository: بعد از تایید کدها آن را در مخازن محلی ذخیره میکنیم.
- Remote Repository: بعد از ذخیره کدها در مخازن محلی اگر میخواهید آن ها را روی سرور اصلی ذخیره کنید آن ها را به سرور push میکنید.
تمام این مفاهیم را هنگام کار عملی با گیت به صورت کامل متوجه خواهید شد. در حالت کلی هنگام انتقال کدها از حالت Working Directory به Staging Area اصطلاح کدها را add میکنیم و هنگام انتقال آن ها از Staging Area به Local Repository عمل commit را انجام میدهیم و هنگام ارسال به سرور اصلی و Remote Repository عمل push انجام میشود.