
به اشتراک بگذارید

به اشتراک بگذارید
در دنیای مدرن توسعه وب، زمان طلاست و امنیت، الماس؛ جابهجایی دستی فایلها با ابزارهایی مثل FTP دیگر نه تنها خستهکننده است، بلکه ریسکهای امنیتی بزرگی را به همراه دارد. حتماً برای شما هم پیش آمده که هنگام آپلود فایلها با FTP، اینترنت قطع شده یا فایلی به اشتباه بازنویسی شده باشد. مدیریت سرور مجازی با گیت راهکاری است که این کابوسها را پایان میدهد. با استفاده از این متد، شما به جای انتقال تکتک فایلها، کل پروژه را با یک دستور ساده به سرور منتقل میکنید.
در واقع، ما درباره یک تغییر پارادایم صحبت میکنیم؛ جایی که سرور شما نه فقط یک فضای ذخیرهسازی، بلکه بخشی هوشمند از چرخه توسعه شماست.
💡 مزایای مدیریت سرور با Git در یک نگاه:
| ویژگی | روش سنتی (FTP) | روش مدرن (Git) |
|---|---|---|
| سرعت انتقال | کند (ارسال تکتک فایلها) | بسیار سریع (فقط تغییرات) |
| امنیت | پایین (پورتهای ناامن) | بسیار بالا (پروتکل SSH) |
| قابلیت بازگشت | غیرممکن یا سخت | آنی با یک دستور (Rollback) |
| اتوماسیون | ندارد | کامل با Git Hooks |
حتماً زمانی که این مقاله را باز کردهاید، به دنبال راهی هستید که از شر آپلودهای طولانی و استرسزای فایلها خلاص شوید. اگر به دنبال یک آموزش گامبهگام و عملی برای استقرار خودکار سایت روی سرور هستید، این مقاله دقیقاً برای شماست. ما از صفر مطلق شروع میکنیم و تا پیادهسازی پیشرفتهترین هوکهای گیت پیش میرویم؛ پس همراه ما باشید… 😉👇
آنچه در این مقاله میخوانید:

در تعریف ساده، مدیریت حرفهای سرور با گیت یعنی استفاده از سیستم کنترل نسخه Git برای کنترل، انتقال و اجرای کدهای برنامهنویسی روی هاست یا سرور مجازی. در این روش، سرور شما دارای یک مخزن (Repository) است که با مخزن روی سیستم شخصی شما همگامسازی میشود. برخلاف مخازن معمولی که در GitHub میبینید، در سرور ما از نوع خاصی به نام “Bare” استفاده میکنیم که فقط حاوی تاریخچه تغییرات است و فایلهای اجرایی در جای دیگری قرار میگیرند.
این ساختار به شما اجازه میدهد تا یک خط لوله (Pipeline) ساده برای کد خود بسازید. تشبیه کاربردی آن مثل یک سیستم لولهکشی مستقیم از میز کار شما تا موتورخانه ساختمان (سرور) است؛ هر تغییری در شیر ورودی، بلافاصله در کل سیستم اعمال میشود.
نمودار جریان داده در مدیریت با گیت:
سیستم توسعهدهنده (Local PC)
⬇️ [git push live]
مخزن واسط در سرور (Bare Repo)
⬇️ [Git Hooks: Post-Receive]
پوشه نهایی سایت (Public_html)
⬇️ [Automation Scripts]
اجرای دستورات (npm install / restart nginx)
🔸 نکته فنی: طبق آمارهای سال 2025، بیش از 85٪ شرکتهای تکنولوژی محور از روشهای مبتنی بر Git برای استقرار استفاده میکنند تا پایداری سرویس خود را تضمین کنند.
چرا باید وقت خود را صرف یادگیری این روش کنید؟ پاسخ در سه کلمه خلاصه میشود: امنیت، سرعت و دقت. وقتی از جایگزین امن FTP یعنی گیت استفاده میکنید، عملاً احتمال هک شدن از طریق پورتهای ناامن انتقال فایل را به صفر میرسانید.
قبل از شروع جادوگری با کدهای گیت، باید مطمئن شویم که ابزارهای لازم را در اختیار داریم. برای یک مدیریت حرفه ای سرور با گیت، موارد زیر الزامی است:
apt install git).
در این بخش همراه تیم وبداده باشید تا به صورت عملی و قدمبهقدم، فرآیند اتصال گیت به سرور لینوکس را طی کنیم. ما فرض میکنیم شما یک پروژه در سیستم خود دارید و میخواهید آن را به سرور منتقل کنید.
ابتدا وارد سرور شوید و یک پوشه برای مخزن گیت بسازید. مخزن Bare فایلهای پروژه را مستقیماً نشان نمیدهد، بلکه فقط دیتابیس گیت است.
# وارد سرور شوید
ssh root@your_server_ip
# ایجاد پوشه مخزن
mkdir -p /var/repo/site.git
cd /var/repo/site.git
# مقداردهی اولیه به صورت Bare
git init --bare اینجاست که جادو اتفاق میافتد. ما از هوک post-receive استفاده میکنیم. این اسکریپت بلافاصله بعد از اینکه شما کد را به سرور Push کردید، اجرا میشود.
فایلی به نام post-receive در پوشه hooks بسازید:
nano /var/repo/site.git/hooks/post-receive کد زیر را در آن قرار دهید:
#!/bin/bash
# مسیر فایلهای اجرایی سایت
TARGET="/var/www/html/my-project"
# مسیر مخزن گیت
GIT_DIR="/var/repo/site.git"
echo "🚀 Starting Deployment..."
# کپی کردن فایلها به پوشه اصلی
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
# رفتن به پوشه پروژه برای اجرای دستورات تکمیلی
cd $TARGET
# مثال برای پروژههای Node.js یا PHP
# npm install
# composer install --no-dev
# systemctl restart nginx
echo "✅ Deployment Successful!" دسترسی اجرا به فایل بدهید:
chmod +x /var/repo/site.git/hooks/post-receive حالا در سیستم خودتان (Local)، آدرس سرور را به عنوان یک “Remote” تعریف کنید:
# در پوشه پروژه خودتان روی کامپیوتر شخصی
git remote add live ssh://root@your_server_ip/var/repo/site.git
# اولین استقرار!
git push live master /var/www/html/my-project) روی سرور وجود دارد و دسترسیهای لازم را به یوزر گیت دادهاید.یکی از بزرگترین اشتباهات در مدیریت سرور مجازی با گیت، آپلود کردن فایلهای حساس مثل پسوردهای دیتابیس است. همیشه از فایل .gitignore استفاده کنید.
.env را هرگز در گیت قرار ندهید. این فایل را یک بار به صورت دستی روی سرور بسازید.| مورد | وضعیت در گیت | روش مدیریت |
|---|---|---|
| کدهای برنامه | Push شود | خودکار با دستور گیت |
| پسوردهای DB | ممنوع | فایل .env دستی روی سرور |
| پوشه node_modules | ممنوع | اجرای npm install در هوک |
در سال 2024، یکی از مشتریان ما در وبداده در حین بهروزرسانی سایت فروشگاهی خود، با یک باگ بحرانی در بخش سبد خرید مواجه شد که باعث توقف فروش شد. اگر از FTP استفاده میکردند، بازگرداندن صدها فایل تغییر یافته ساعتها زمان میبرد.
اما به دلیل استفاده از مدیریت حرفه ای سرور با گیت، تیم فنی تنها با اجرای دستورات زیر در کمتر از 30 ثانیه سایت را به نسخه پایدار قبلی برگرداند:
# مشاهده لیست commit ها
git log --oneline
# بازگشت به commit قبلی (یک نسخه قبل)
git reset --hard HEAD~1
# یا بازگشت به commit خاص
git reset --hard <commit-hash>
# ارسال اجباری به سرور
git push -f live master # بازگشت به یک commit قبل
ssh root@your_server_ip "cd /var/repo/site.git && git --work-tree=/var/www/html/my-project checkout -f HEAD~1"
# یا بازگشت به commit خاص
ssh root@your_server_ip "cd /var/repo/site.git && git --work-tree=/var/www/html/my-project checkout -f abc1234" # ایجاد commit جدید که تغییرات قبلی را برمیگرداند
git revert HEAD
git push live master ⚠️ نکته مهم: تفاوت reset و revert:
این یعنی اعتماد به نفس در توسعه؛ شما میدانید که راه بازگشت همیشه باز است.

سرویسهای سرور مجازی وبداده با هدف ارائه بالاترین کارایی برای توسعهدهندگان طراحی شدهاند. ما زیرساختی را فراهم کردهایم که در آن:
استفاده از مدیریت سرور مجازی با گیت نه تنها یک انتخاب فنی، بلکه یک ضرورت برای هر توسعهدهندهای است که به حرفهای بودن خود اهمیت میدهد. با حذف FTP و جایگزینی آن با استقرار خودکار سایت روی سرور، شما امنیت را به معنای واقعی کلمه لمس خواهید کرد و زمان بیشتری برای تمرکز روی نوشتن کدهای باکیفیت خواهید داشت.
ما در این مقاله آموختیم که چطور با استفاده از آموزش کار با Git Hooks، یک سیستم دیپلوی خودکار بسازیم که ریسکهای انسانی را به حداقل برساند. به یاد داشته باشید که در سالهای 2025 و 2026، اتوماسیون حرف اول را در دنیای وب میزند.
git reset یا git revert استفاده کنید.gitignore برای فایلهای غیرضروری استفاده کنیدامیدوارم این مقاله از بلاگ وبداده برای شما مفید بوده باشد. اگر هنوز در شروع مسیر هستید یا سوالی درباره تنظیمات اختصاصی سرور خود دارید، حتماً در بخش نظرات با ما در ارتباط باشید؛ تیم فنی ما مشتاقانه پاسخگوی شماست. 🚀
اکثر هاستهای اشتراکی اجازه دسترسی به SSH و Git Hooks را نمیدهند. برای این کار حتماً به یک سرور مجازی (VPS) نیاز دارید تا کنترل کامل روی اسکریپتها داشته باشید.