اگر با برنامهنویسها یا طراحهای سایت کار کرده باشید، حتماً جمله «کدش رو بذار روی گیتهاب» را شنیدهاید. گیتهاب چیست و چرا تقریباً همه تیمهای نرمافزاری از آن استفاده میکنند؟ در یک جمله، GitHub یک سرویس آنلاین برای ذخیره کد، ثبت تاریخچه تغییرات آن و همکاری چند نفر روی یک پروژه است. این مقاله بدون فرض دانش قبلی توضیح میدهد GitHub و Git چه فرقی دارند، مفهومهای اصلی (repository، commit، branch و pull request) چیست، چه کارهای دیگری میشود با آن کرد و اگر صاحب یک سایت وردپرسی هستید، از کجا شروع کنید.
فهرست مطالب
- گیتهاب چیست؟
- فرق Git و GitHub چیست؟
- مفهومهای اصلی که باید بشناسید
- چرا از گیتهاب استفاده کنیم؟
- امکانات مهم GitHub
- شروع کار: مراحل اول
- گیتهاب برای سایت وردپرسی
- چه چیزهایی را هیچوقت روی گیتهاب نگذارید
- جایگزینهای گیتهاب
- سؤالات متداول
گیتهاب چیست؟
گیتهاب سرویسی آنلاین است که کد پروژهها را در قالب «مخزن» (repository) نگه میدارد و تاریخچه کامل تغییرات هر فایل را ثبت میکند. هر کس میتواند ببیند چه چیزی، کی و توسط چه کسی تغییر کرده و در صورت لزوم به نسخه قبلی برگردد. چند نفر هم میتوانند همزمان روی یک پروژه کار کنند، بدون اینکه فایلهای هم را بازنویسی کنند.
گیتهاب در سال ۲۰۰۸ راهاندازی شد و در ژوئن ۲۰۱۸ مایکروسافت اعلام کرد آن را با ۷٫۵ میلیارد دلار میخرد؛ خرید در اکتبر همان سال نهایی شد. امروز بیشتر پروژههای متنباز مهم روی این پلتفرم هستند و هسته وردپرس هم یک مخزن توسعه در آن دارد.
تصور سادهاش این است: گوگل درایو برای فایلهای کد، ولی با حافظهای که هر تغییر را با نام، تاریخ و توضیح ثبت میکند.
فرق Git و GitHub چیست؟
این دو اسم را زیاد با هم اشتباه میگیرند. Git ابزاری است که روی کامپیوتر شما نصب میشود و تغییرات فایلها را ردیابی میکند. GitHub سرویس آنلاینی است که مخزنهای Git را روی اینترنت نگه میدارد و امکانات همکاری به آن اضافه میکند. Git را لینوس توروالدز، سازنده کرنل لینوکس، ساخته و رایگان و متنباز است.
| Git | GitHub | |
|---|---|---|
| چیست؟ | سیستم کنترل نسخه | سرویس میزبانی و همکاری آنلاین |
| کجا اجرا میشود؟ | روی کامپیوتر خودتان | روی سرورهای GitHub (اینترنت) |
| اینترنت لازم است؟ | خیر | بله |
| کار اصلی | ثبت تاریخچه تغییرات | اشتراک پروژه، بررسی کد، مدیریت کارها |
| وابستگی | بدون GitHub هم کار میکند | بدون Git کار نمیکند |
پس میتوانید فقط با Git روی کامپیوتر خودتان کار کنید، اما برای کار تیمی و داشتن نسخه پشتیبان آنلاین به سرویسی مثل GitHub نیاز دارید.
مفهومهای اصلی که باید بشناسید
| اصطلاح | معنی ساده |
|---|---|
| Repository (مخزن) | پوشه پروژه بههمراه تمام تاریخچهاش |
| Commit | یک «عکس» ثبتشده از وضعیت فایلها با یک توضیح کوتاه |
| Branch (شاخه) | یک مسیر جداگانه برای کار روی ویژگی یا اصلاح، بدون دست زدن به نسخه اصلی |
| Merge | ترکیب تغییرات یک شاخه با شاخه دیگر |
| Clone | گرفتن یک کپی کامل از مخزن روی کامپیوتر |
| Fork | برداشتن کپی شخصی از مخزن دیگران در حساب خودتان |
| Pull Request | درخواست برای اضافه شدن تغییرات شما به پروژه، همراه با بررسی دیگران |
| Issue | یک گزارش باگ، پیشنهاد یا کار انجامنشده |
فرض کنید میخواهید دکمه تماس را در قالب سایت تغییر دهید. یک شاخه جدید میسازید، تغییر را در آن انجام میدهید و commit میکنید. بعد یک Pull Request باز میکنید تا همکارتان کد را ببیند و تأیید کند. وقتی تأیید شد، شاخه شما با نسخه اصلی ترکیب میشود. اگر چیزی خراب شد، برگرداندن همان commit یک دقیقه کار است.
چرا از گیتهاب استفاده کنیم؟
- برگشت به نسخه قبلی: اگر تغییری سایت را خراب کرد، میتوانید دقیقاً به نسخه سالم قبلی برگردید. این از ویرایش مستقیم فایل روی هاست خیلی امنتر است.
- کار گروهی: چند نفر همزمان روی شاخههای جدا کار میکنند و بعد تغییرات ترکیب میشود.
- بازبینی کد: هر تغییر قبل از ورود به نسخه اصلی توسط شخص دیگری دیده میشود.
- نسخه پشتیبان: کد شما فقط روی یک کامپیوتر نیست. اگر لپتاپ خراب شود، پروژه سر جایش است.
- سابقه کار: تاریخچه فعالیت شما در حساب گیتهاب نشان میدهد چه پروژههایی ساختهاید. برای رزومه برنامهنویسها مهم است.
- دسترسی به پروژههای متنباز: میتوانید کد هزاران پروژه را بخوانید، کپی کنید و در بهبود آنها شرکت کنید.
امکانات مهم GitHub
گیتهاب فقط جایی برای ذخیره کد نیست. این امکانات از پرکاربردترینهایش هستند:
- GitHub Issues و Projects: مدیریت کارها و باگها، شبیه یک برد کانبان.
- GitHub Actions: اجرای خودکار کارها بعد از یک رویداد، مثلاً اجرای تستها بعد از هر push یا انتشار خودکار نسخه جدید. تنظیمات این کارها در فایلهای YAML داخل مخزن نوشته میشود.
- GitHub Pages: میزبانی رایگان سایتهای استاتیک (HTML، CSS و جاوااسکریپت) مستقیم از مخزن. نکته مهم: Pages فقط سایت استاتیک ارائه میدهد. PHP و وردپرس روی آن اجرا نمیشود و برای آنها هاست لازم دارید.
- GitHub Copilot: دستیار هوش مصنوعی برای نوشتن و تکمیل کد که بهصورت سرویس جداگانه ارائه میشود. پلنها و قیمتها را از سایت رسمی بررسی کنید، چون مرتب تغییر میکنند.
- Codespaces: محیط توسعه ابری که از داخل مرورگر باز میشود و نیازی به نصب ابزار روی کامپیوتر ندارد.
شروع کار: مراحل اول
- حساب بسازید: در github.com با ایمیل خود ثبتنام کنید و احراز هویت دومرحلهای را فعال کنید.
- Git را نصب کنید: از git-scm.com نسخه مناسب سیستمعامل را دانلود کنید.
- نام و ایمیل را تنظیم کنید: این دو در هر commit ثبت میشوند.
- یک مخزن بسازید: در سایت گیتهاب دکمه New repository را بزنید. یک اسم و یک README برایش بگذارید.
- مخزن را کلون کنید و تغییر بدهید: دستورهای زیر یک جریان کار کامل را نشان میدهند.
# تنظیم اولیه (فقط یک بار)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# گرفتن کپی مخزن
git clone https://github.com/your-name/my-project.git
cd my-project
# ساخت شاخه جدید و تغییر فایلها
git switch -c fix-header
# ثبت تغییرات
git add .
git commit -m "Fix header menu spacing"
# ارسال شاخه به GitHub
git push -u origin fix-headerبعد از push، در صفحه مخزن در GitHub پیشنهاد باز کردن Pull Request نشان داده میشود. نکته درباره ورود: GitHub برای عملیات Git از طریق HTTPS دیگر رمز عبور حساب را قبول نمیکند. باید از توکن دسترسی شخصی (personal access token) یا کلید SSH استفاده کنید.
گیتهاب برای سایت وردپرسی
اگر فقط یک سایت وردپرسی معمولی دارید، شاید لازم نباشد کل سایت را روی گیتهاب بگذارید. اما در این موارد خیلی به کار میآید:
- قالب یا افزونه اختصاصی: اگر قالب فرزند یا افزونهای مخصوص سایت خودتان دارید، آن را در یک مخزن نگه دارید تا هر تغییر ثبت شود و همیشه نسخه سالم در دسترس باشد.
- کار گروهی روی طراحی: وقتی طراح و برنامهنویس همزمان روی قالب کار میکنند، شاخهها از بازنویسی کار هم جلوگیری میکنند.
- استقرار خودکار: با GitHub Actions میشود بعد از تأیید یک تغییر، فایلها را بهصورت خودکار روی هاست کپی کرد.
- یافتن و گزارش باگ: بسیاری از افزونههای وردپرس یک مخزن عمومی دارند که میتوانید در آن Issue باز کنید.
برای یک پروژه وردپرسی، فایل .gitignore مهم است، چون مشخص میکند چه فایلهایی نباید وارد مخزن شوند:
wp-config.php
wp-content/uploads/
wp-content/cache/
node_modules/
.envاگر هنگام کار با کد به خطاهای PHP برخوردید، مقاله خطاهای رایج PHP و راه رفع آنها کمک میکند. قبل از هر تغییر بزرگ هم یادتان باشد سایت را بهروز نگه دارید؛ جزئیات در بروزرسانی سایت وردپرسی آمده است.
چه چیزهایی را هیچوقت روی گیتهاب نگذارید
یک اشتباه رایج، آپلود رمزها و کلیدها همراه کد است. اینها را هرگز commit نکنید:
- فایل
wp-config.phpکه رمز دیتابیس و کلیدهای امنیتی وردپرس را دارد. - فایلهای
.envو هر فایلی که API Key یا توکن دارد. - بکاپ دیتابیس یا اطلاعات مشتریان.
مخزنهای عمومی را همه میتوانند ببینند، و حتی مخزن خصوصی ممکن است بعداً عمومی شود یا دسترسیاش به شخص اشتباه داده شود. اگر رمزی بهاشتباه commit شد، پاک کردن commit کافی نیست، چون تاریخچه آن را نگه میدارد. فوراً همان رمز یا کلید را عوض (rotate) کنید و بعد از آن مخزن را اصلاح کنید.
جایگزینهای گیتهاب
گیتهاب تنها گزینه نیست. دو رقیب شناختهشدهاش GitLab و Bitbucket هستند. هر دو با Git کار میکنند و امکاناتی مشابه (مخزن، Pull یا Merge Request، خط لوله خودکار) دارند. تفاوتها بیشتر در جزئیات پلنها، ابزارهای جانبی و تنظیمات سازمانی است. چون زیربنای همه Git است، یادگیری Git یکبار انجام میشود و روی هر سه کار میکند.
اگر به یادگیری برنامهنویسی وب فکر میکنید، مقاله ۵ زبان برنامهنویسی برتر برای طراحی سایت نقطه شروع خوبی است.
سؤالات متداول
گیتهاب چیست و چه کاری انجام میدهد؟
گیتهاب سرویسی آنلاین برای نگهداری کد پروژهها، ثبت تاریخچه تغییرات و همکاری چند نفر روی یک پروژه است. روی Git ساخته شده و امکاناتی مثل بررسی کد، مدیریت کار و اجرای خودکار تستها را اضافه میکند.
فرق Git و GitHub چیست؟
Git یک ابزار رایگان روی کامپیوتر شماست که تغییرات فایلها را ردیابی میکند. GitHub یک سرویس آنلاین است که مخزنهای Git را میزبانی میکند و امکانات همکاری ارائه میدهد.
آیا استفاده از گیتهاب رایگان است؟
گیتهاب پلن رایگان دارد که برای شروع و پروژههای شخصی کافی است. امکانات و محدودیتهای هر پلن را از صفحه قیمتگذاری رسمی ببینید، چون ممکن است تغییر کنند.
بدون دانش برنامهنویسی هم میتوانم از گیتهاب استفاده کنم؟
بله. برای نگهداری فایلهای متنی، مستندات یا پیگیری کارها با Issues نیازی به برنامهنویسی نیست. اما درک مفهومهایی مثل commit و branch برای کار موثر لازم است.
آیا GitHub Pages میتواند سایت وردپرسی را میزبانی کند؟
خیر. GitHub Pages فقط فایلهای استاتیک را سرو میکند و PHP یا دیتابیس ندارد. سایت وردپرسی به هاست یا سرور مجازی نیاز دارد.
کاربران ایرانی هم میتوانند از گیتهاب استفاده کنند؟
دسترسی و بعضی خدمات پولی ممکن است بسته به قوانین تحریمها و سیاستهای GitHub محدود باشد و این شرایط تغییر میکند. وضعیت فعلی را در شرایط استفاده و صفحه پشتیبانی رسمی GitHub بررسی کنید.
از کجا شروع کنید؟
یک حساب رایگان بسازید، یک مخزن آزمایشی با یک فایل README ایجاد کنید و بالا دستورهای clone، commit و push را روی آن تمرین کنید. بعد از چند بار تکرار، مفهوم شاخه و Pull Request ملموس میشود. اگر برای سایت یا فروشگاهتان به طراحی اختصاصی و تیم فنی نیاز دارید، درباره خدمات طراحی وبسایت کیاهاست بخوانید یا از صفحه ارتباط با ما مشاوره بگیرید.
منابع: مستندات رسمی GitHub: About GitHub and Git · مستندات رسمی Git · ویکیپدیا: تاریخچه GitHub
مشاوره رایگان طراحی سایت و اپلیکیشن اندروید
برای طراحی سایت یا ساخت اپلیکیشن اندروید کسبوکارتان سؤال دارید؟ کارشناسان کیاهاست در واتساپ، رایگان راهنماییتان میکنند.
دریافت مشاوره رایگان در واتساپ
شماره واتساپ: 09396147711
