در این مقاله، میخواهیم دربارهی اینکه سرور گیت چیست و چه کمکی به ما میکند صحبت کنیم. در حال حاضر، حوزهی برنامهنویسی و توسعهی نرمافزار با استقبال روزافزونی مواجه است و هرروزه به تعداد افرادی که به سمت این نوع مشاغل میروند، اضافه میشود. درنتیجه، تقاضا برای برنامههای مربوط به این زمینه نیز رو به افزایش است.
از طرفی، زیادشدن نیروی کار برنامهنویسی و توسعهی نرمافزار نیز باعث بالارفتن رقابت در دنیای آنلاین شدهاست و نشاندادن تواناییها و استعدادها، به ارتقای شغلی و پیداکردن فرصتهای بهتر منجر میشود. در چنین مواقعی، یکی از برنامههایی که میتواند به برنامهنویسیان و توسعهدهندگان کمک زیادی کند، گیت (Git) است. با استفاده از سرور گیت، شما میتوانید از راه دور و فقط با داشتن یک سیستم کامپیوتری، پروژههایتان را مدیریت کنید.
اگر به دنبال نصب گیت و سرور آن هستید و نمیدانید از کجا باید شروع کنید، اصلا نگران نباشید. در این مطلب، ابتدا مزایا و معایب گیت را معرفی میکنیم و سپس به سراغ سرور و نحوهی میزبانی آن میرویم.
گیت چیست؟
گیت یک برنامهی دوآپس (DevOps) منبعباز و رایگان است که به برنامهنویسان و توسعهدهندگان کمک میکند تا بتوانند پروژههایشان را در یک محیط مدیریت شده بارگذاری کرده و آنها را بهراحتی بهینه کنند. یکی از مهمترین قابلیتهای گیت این است که شما میتوانید کد منبعتان را در طول زمان، ردیابی کنید.
همچنین، با کمک بروزرسانیهای مداوم و منظم گیت، دیگر از بابت بروزنبودن ابزارهای آن نگران نخواهید بود. زمانی که روی رایانهی خود برنامهی گیت را نصب میکنید، میتوانید فهرستی از مخازن مختلف را ایجاد کرده و تمام تغییرات فایلها را با تاریخچههای جداگانه و بهصورت مستند داشته باشید.
در طول ۲۰ سال اخیر، بیش از ۳۰ بروزرسانی از این نرمافزار منتشر شدهاست و آخرین نسخهی آن تا به اینجا 2.40.0 نام دارد. قبل از اینکه به سراغ سرور مجازی گیت برویم، بهتراست کمی دربارهی موارد استفاده و کاربردهای آن صحبت کنیم.
کاربردهای گیت
شاید از خودتان سوال پرسیده باشید که چرا باید از سرور گیت استفاده کنم و اصلا آیا داشتن این سرور برای من ضروری است؟ در این قسمت، برخی از مهمترین کاربردهای این سرور را معرفی میکنیم. اگر یک یا چند نمونه از این کاربردها را برای شغلتان مفید میبینید، به احتمال زیاد خرید یک vps مانند سرور مجازی ایران به نفعتان است.
کلون کردن مخازن (repository)
اکثر برنامهنویسان و توسعهدهندگان ترجیح میدهند به جای داشتن چندین مخزن مختلف برای یک پروژه، یک مخزن در سرورشان داشته باشند تا برنامهها و فایلهای موردنظرشان را ردیابی کنند. با کمک گیت و فقط با اجرای چند دستور ساده، میتوانید مخزن هستهی لینوکس خود را تکرار کرده و از آن برای جمعآوری گزارش تغییرات فایلهای موردنظرتان استفاده کنید.
به این کار «شاخهزدن» یا «برنچینگ» (branching) گفته میشود. در واقع، شما میتوانید یک شاخهی جداگانه از مخزنتان را ایجاد کرده و خود یا افراد تیمتان، تغییرات را بر روی شاخههای ایجادشده، اعمال کنید. مهمترین مزیت برنچینگ، سادهسازی مدیریت پروژههای کوچک تا بزرگ است.
گردش کار (Workflow) گیت
پس از پیکربندی سرور گیت، میتوانید از گردش کار گیت استفاده کنید. اما گردش کار گیت به چه معناست؟
یکی از مزیتهای گیت این است که میتوانید در سرور محلیتان، دو دسته از شاخههای مجزا را شبیهسازی کرده و یکی از آنها را بهعنوان نمایندهی پروژهتان انتخاب کنید و دیگری را به همان شکل قبلی دستنخورده باقی بگذارید. بهعنوان مثال، فرض کنید میخواهیم بر روی توسعهی یک وبسایت کار کنیم. برای اینکه راحتتر بتوانیم نتیجهی کارمان را بررسی کنیم و درصورت نیاز به تغییرات قبل برگردیم، میتوانیم یک سرور گیت با یک شاخهی مجزا ایجاد کنیم تا تمام تغییرات ایجادشده توسط هر کدام از اعضای تیم توسعه، در آن شاخه ثبت شوند و قبل از اجرا، بتوانیم نتیجهی این تغییرات را آزمایش کنیم.
با این رویکرد چند لایهسازی گردش کار، میزان توسعه و سرعت آزمایش پروژه افزایش مییابد و فرآیند ردیابی کارها و انجام تغییرات بسیار سادهتر میشود.
ادغام (Merging)
کمی بالاتر، دربارهی انشعاب یا شاخهزدن مخازن و گزارش تغییرات صحبت کردیم. عملیات ادغام دقیقا برعکس شاخهزدن است. در ادغام vps گیت، ما میخواهیم دادهها را از یک گرهی شاخهی مخزن به مخزن اصلیمان (که قبلا آن را به چند شاخه تقسیم کردیم) تزریق کنیم.
معمولا این کار را زمانی انجام میدهیم که بخواهیم یک سرور گیت را با گزارش جامعه پروژه و تاریخچهی تغییرات ایجاد کنیم و هدفمان این است که این مخزن، تمام تغییرات را در خود جای دهد و در عین حال، مختصر و قابلرمزگشایی باشد.
با استفاده از قابلیت ادغام، سردرگمیهای ناشی از انشعابهای مختلف از بین میرود و در پایان پروژه، میتوانیم عیبیابی را بهصورت جامعتری انجام دهیم.
استفاده از سرور گیت لب چه مزایا و معایبی دارد؟
هر برنامهای که استفاده میکنید، دارای مزایا و معایب خاص خودش است و گیت هم از این قاعده مستثنا نیست. شما میتوانید از یک vps مانند سرور مجازی آمریکا یا سرور اختصاصی برای راهاندازی و کار با گیت استفاده کنید. با این حال، پیشنهاد میکنیم برای کار بر روی پروژههایتان، از سروری که بهطور اختصاصی برای کار با گیت ارائه میشود استفاده کنید.
در این قسمت، میخواهیم دربارهی مزایا و معایب سرور گیت صحبت کنیم تا بیشتر با آن آشنا شوید.
مزایای سرور گیت
دسترسی بدون دخالت شخص ثالث
با کمک vps گیت، فقط شما و افرادی که پروژه را بینشان بهاشتراک گذاشتهاید میتوانید به آن دسترسی داشته باشید. بدینصورت، دسترسی اشخاص دیگر به پروژهی شما ازبین میرود و میتوانید کارهای مربوط به پروژهتان را با خیال راحت دنبال کنید. همچنین، از آنجاییکه دادههای شما در مکان امنی قرار دارند، میتوانید بودجهای که برای حفظ امنیت دادهها درنظر گرفتهاید را برای بخش مهمتری صرف کنید.
امنیت
همانطور که در قسمت قبلی گفتیم، گیت و سرور گیت بسیار امن هستند و زمانی که از سرور آن برای میزبانی استفاده میکنید، تقریبا برای انجام هر کاری آزادی دارید و میتوانید عملیاتتان را با خیال راحت انجام دهید.
مخازن نامحدود
شما هیچ محدودیتی برای تعداد مخازنی که میتوانید در گیت ایجاد کنید نخواهید داشت. بدینصورت، میتوانید پروژههای بزرگتان را به شاخههای مختلف تقسیم کرده و بهراحتی با فایلهای بزرگ کار کنید.
معایب سرور گیت
نیاز به تلاش زیاد برای مدیریت پروژه
اگر از همان ابتدا، هیچ برنامهای برای مدیریت پروژهتان نداشته باشید و هر یک از اعضای تیم بدون هماهنگی با دیگران، شاخههای تغییرات یا ابر دادهها را اضافه کنند، ممکن است مدیریت کنترل پروژه از دستتان خارج شود.
درنتیجه، باید به دقت با آن کار کنید و یا از یک کدنویس ماهر بخواهید که پروژهی شما را مدیریت کند.
یادگیری نسبتا سخت
با اینکه میزبانی گیت چندان هم وقتگیر نیست، اما مسلطبودن به آن و اجرای سرور محلی گیت به یادگیری و تمرین و تکرار نیاز دارد. برای کار با این ابزار مبتنی بر مخزن، باید سطح بالایی از دانش را داشته باشید و درصورتی که وقت یادگیری آن را ندارید، این کار را برون سپاری کنید.
پشتیبانینکردن از رابط کاربری گرافیکی و ویندوز
اگر میخواهید سرور گیت را در ویندوز راهاندازی کنید یا آن را برای اجرا با یک رابط کاربری گرافیکی پیکربندی کنید، باید به اطلاع شما برسانیم که تلاشتان بیفایده است!
اول از همه، باید بدانید که کار با vps گیت فقط با سیستمعاملهایی امکانپذیر است که از هستهی لینوکس بهعنوان کد پایه استفاده کردهاند. به عبارتی دیگر، سیستمعامل شما باید مبتنی بر لینوکس باشد. برای انجام این کار نیز بهتراست که اصول کدنویسی را بلد باشید.
پیشنیازهای نصب گیت
قبل از راهاندازی سرور گیت، باید با پیشنیازهای آن آشنا شویم. برای این کار، فقط به یک سرور و یک نمونه از گیت نیاز دارید. در ادامه، با داشتن دانش برنامهنویسی میتوانید پیکربندی سرور گیت را انجام دهید.
سرور گیت
برای راهاندازی vps گیت میتوانید از رایانهی شخصیتان، سرورهای اختصاصی و یا VPS ابری ارائهشده توسط یک ارائهدهندهی معتبر استفاده کنید. توصیهی ما این است که یک VPS تهیه کنید؛ زیرا با کمک آن میتوانید مستقیما سرور را مدیریت کرده و همزمان نمونهی گیت را اجرا کنید.
توجه داشته باشید که باید بر روی سروری که تهیه میکنید، یک توزیع لینوکس وجود داشته باشد.
نمونهی گیت
راهاندازی سرور گیت بسیار آسان است. همچنین، نرمافزار گیت و بازکردن حساب کاربری در وبسایت آن رایگان است و هیچ هزینهی جانبیای برایتان ندارد. به همین دلیل است که بسیاری از برنامهنویسان و توسعهدهندگان، گیت را به سایر ابزارهای مدیریت پروژه ترجیح میدهند.
نصب گیت روی لینوکس
در این قسمت، مراحل نصب گیت روی لینوکس را بهصورت قدم به قدم توضیح میدهیم.
مرحلهی ۱: دانلود و نصب گیت
ابتدا، سیستمعامل مبتنی بر لینوکس خود را اجرا کرده و باتوجه به توزیع لینوکس، یکی از دستورات زیر را در ترمینال آن اجرا کنید:
برای توزیعهای مبتنی بر اوبونتو/دبیان:
sudo apt install git
برای توزیعهای مبتنی بر آرچ:
sudo pacman -S git
برای توزیعهای مبتنی بر RHEL:
sudo dnf install git
با اجرای یکی از دستورات بالا، گیت بر روی سرور مجازی لینوکس شما دانلود و نصب میشود. تا تمامشدن فرآیند نصب، منتظر بمانید و دستور دیگری را اجرا نکنید.
مرحلهی ۲: ثبت و پیکربندی سرور گیت
درصورتی که یک سرور محلی بر روی دسکتاپ دیگری دارید، آن را بوت کنید. در غیراینصورت، اگر یک VPS دارید، باید از SSH یا RDP برای اتصال ریموت به سرور لینوکستان استفاده کنید.
حال باید سرور گیت را برای اجرای ریموت پیکربندی کنیم. در ابتدا، باید با استفاده از دستورات زیر، یک حساب گیت را ایجاد میکنیم:
ssh username@address sudo useradd git
پس از اجرای دستورات بالا، دستور زیر را اجرا کنید تا وارد حساب جدید خود شوید:
su git
با فعالسازی این حساب، شما ادمین سرور خواهید بود و میتوانید با خیال راحت تمام سطوح دسترسی را مشخص کرده و گروههای کاربری موردنظرتان را سازماندهی کنید.
مرحلهی ۳: ایجاد دایرکتوریهای SSH و مخزن گیت بر روی سرور
در این مرحله، باید یک دایرکتوری SSH انحصاری را برای ذخیرهی کلیدهای عمومیتان ایجاد کنید. سپس، باید یک مخزن گیت را بر روی سرور و با لایههای امنیتی اضافی و سطوح دسترسی تعریفشده ایجاد کنید. اول از همه، دستورات زیر را به ترتیب اجرا کنید:
ssh git@address mkdir .ssh chmod 700 .ssh/ touch .ssh/authorized_keys
پس از اینکه با اجرای دستورات بالا، دسترسی دیگران را محدود کردید، باید خطوط بعدی را اجرا کنید تا مطمئن شوید که کلیدهای SSH شما بهصورت صحیح و ایمن در یک پوشه به نام authorized_keys ذخیره میشوند و فقط خودتان میتوانید به این کلیدها دسترسی داشته باشید (توجه داشته باشید که فقط درصورتی میتوانید این دستورات را اجرا کنید که فایلی به نام id_rsa.pub ندارید):
cd .ssh ssh-keygen -t rsa cat id_rsa.pub
در پایان، با اجرای دستورات زیر، کلید عمومی SSH را که برای راهاندازی اتصال SSH جدید در سرور محلی گیت درست کردهاید را کپی کنید:
cd .ssh vi authorized_keys
مرحلهی ۴: ایجاد یک فهرست اصلی
در این مرحله، باید دستور زیر را اجرا کرده و یک دایرکتوری جدید را در سرور لینوکستان ایجاد کنید تا تمام مخازنی که گیت در پروژههای آینده استفاده خواهد کرد، ذخیره شوند:
mkdir directory_name
مرحلهی 5: اضافهکردن پروژه به گیت
حال که موفق شدید سرور گیت خود را ایجاد و پیکربندی کنید، نوبت اضافهکردن پروژه میرسد. دستورات زیر را اجرا کنید تا پروژهتان به گیت اضافه شود:
cd parent_directory mkdir new_project.git
سپس، برای اضافهکردن مبدا ریموت، دستورات زیر را در ترمینال اجرا کنید:
git init --bare git remote add origin name git@address: new_project.git
در پایان، باید یک دستور push را انجام دهید تا بررسی کنید که آیا همه چیز به درستی کار میکنند یا خیر:
touch testfile git add testfile git commit -m "test file" git push name master git clone git@address: new_project.git
تبریک میگوییم! شما توانستید با موفقیت هاستینگ گیت و ایجاد یک مخزن گیت در سرورتان را انجام دهید.
جمعبندی
برنامهنویسان و توسعهدهندگان برای مدیریت پروژههایشان از ابزارهای مختلفی استفاده میکنند. یکی از این ابزارها، گیت است. بروزرسانیهای مکرر و همچنین رایگان و منبعباز بودن این ابزار به محبوبیت آن اضافه کردهاست.
سرور گیت، یک سرور مجازی است که به طور اختصاصی برای کار با این ابزار ارائه میشود. با دراختیار داشتن سرور گیت، میتوانید منابع موردنیاز برای پروژهتان را بهصورت دلخواه تنظیم کنید و همچنین کنترل بیشتری بر روی مدیریت پروژههایتان داشته باشید.
سوالات متداول
آیا میتوانم بدون داشتن سرور، گیت را میزبانی کنم؟
خیر. مهم نیست که از چه نوع سروری استفاده میکنید، در نهایت به یک سختافزار نیاز دارید تا بهعنوان یک سرور عمل کند. اگر امکاناتتان محدود است، میتوانید از گیت هاب کمک بگیرید تا بهعنوان یک سرور ابری عمل کرده و منابعتان را ذخیره کند. همچنین، میتوانید پلنهای متنوع سرورهای مجازی ما در وبسایت ویپیاس مارکت را بررسی کرده و درصورت تمایل، از خدمات ما برای راحتترکردن کار با گیت استفاده کنید.
آیا میتوان با استفاده از رابط کاربری گرافیکی، عملیات نصب سرور گیت را انجام داد؟
بله. با اینکه گیت از رابط کاربری گرافیکی پشتیبانی نمیکند، اما یک نسخهی مستقل با رابط کاربری گرافیکی که به Git GUI معروف است وجود دارد و میتوانید از آن برای انجام کارهای مرتبط با گیت استفاده کنید.
آیا پلن پولی برای گیت وجود دارد؟
خیر. گیت یک برنامهی رایگان و منبعباز است که میتوانید بدون نیاز پرداخت هیچ هزینهای، از آن استفاده کنید.
چرا توصیه میشود که سرور گیت خودمان را میزبانی کنیم؟
فرض کنید که میخواهید یک پروژهی کوچک با منابع محدود را شروع کنید. معمولا چنین پروژههایی، خصوصی هستند و باید بهصورت امن نگهداری شوند. همچنین، هر چه ابعاد پروژه بزرگتر باشد، به امنیت و مدیریت بیشتری هم نیاز دارد. درنتیجه، چه یک پروژهی کوچک دارید و چه پروژهی شما گسترده است، میتوانید از مزایای سرور گیت استفاده کنید.









