آموزش Git و GitHub از صفر تا Push، Pull و Clone
بدون کنترل نسخه، هر بار که فایلی را خراب میکنید مجبورید یک نسخهٔ پشتیبان دستی نگه دارید (final_v2_realfinal.py). Git تاریخچهٔ کامل تغییرات هر پروژه را ثبت میکند، و GitHub همان تاریخچه را آنلاین و قابلاشتراک میکند — دقیقاً همان چیزی که پشت این پورتفولیو و همهٔ ابزارهای پایتونی این آموزشها کار میکند.
نصب Git
روی ویندوز از git-scm.com/download/win دانلود کنید؛ در مراحل نصب همه گزینهها را پیشفرض بگذارید. برای تأیید نصب:
git --version
تنظیم هویت (فقط یکبار)
git config --global user.name "نام شما"
git config --global user.email "ایمیل شما"
این اطلاعات روی هر commit ثبت میشود — هویت نویسندهٔ تغییرات است، نه اکانت گیتهاب.
قدم اول: شروع یک پروژهٔ واقعی
فرض کنید میخواهید همان quotes.csv که در آموزش وباسکرپینگ ساختیم را زیر کنترل نسخه ببرید:
cd quotes-project
git init
git init یک پوشهٔ مخفی .git میسازد — از همین لحظه Git تاریخچهٔ این پوشه را دنبال میکند.
قدم دوم: چرخهٔ اصلی — status، add، commit
git status # چه فایلهایی تغییر کردهاند؟
git add quotes.csv # فایل را برای commit آماده کن (staging)
git commit -m "افزودن اولین نسخهٔ quotes.csv"
هر commit یک عکسفوری (snapshot) از پروژه در همان لحظه است، همراه با پیام توضیحی. git log تاریخچهٔ همهٔ این عکسفوریها را نشان میدهد.
چرخهٔ کلی به همین ترتیب است: تغییر در پوشهٔ پروژه → git add → ناحیهٔ آمادهسازی (Staging) → git commit → مخزن محلی → git push → گیتهاب، و برعکس با git pull.
نادیدهگرفتن فایلهایی که نباید commit شوند
# .gitignore
__pycache__/
.env
*.log
توکن، رمز عبور یا پوشههای حجیم (مثل node_modules) هرگز نباید commit شوند — دقیقاً همان اصلی که در آموزش ربات تلگرام دربارهٔ توکن هشدار دادیم.
قدم سوم: ساخت ریپو در گیتهاب
- یک اکانت رایگان در github.com/join بسازید
- از دکمهٔ + بالای صفحه، New repository را بزنید — یا مستقیم به github.com/new بروید
- یک نام بدهید (مثلاً
quotes-project)، Public یا Private را انتخاب کنید، و بدون اضافهکردن README روی Create repository بزنید — چون پروژهٔ شما از قبل فایل دارد
گیتهاب بعد از ساخت، آدرس ریپو را نشان میدهد؛ چیزی شبیه:
https://github.com/username/quotes-project.git
قدم چهارم: اتصال پروژهٔ محلی به گیتهاب
git remote add origin https://github.com/username/quotes-project.git
git branch -M main
git push -u origin main
remote add origin به Git میگوید «نسخهٔ آنلاین این پروژه اینجاست». push تاریخچهٔ commitها را همانجا آپلود میکند.
نکتهٔ مهم: گیتهاب دیگر رمز عبور اکانت را برای push قبول نمیکند. باید یک Personal Access Token بسازید (از تنظیمات توکنهای گیتهاب) و بهجای رمز عبور همان را وارد کنید، یا از SSH استفاده کنید. مستندات رسمی: مدیریت Personal Access Tokenها.
Clone: آوردن یک ریپو به سیستم دیگر
روی هر سیستم دیگری — لپتاپ کار، سرور، یا سیستم یک همکار:
git clone https://github.com/username/quotes-project.git
این دستور کل پروژه، همراه با کل تاریخچهٔ commitها، را دانلود میکند. مستندات: Cloning a repository.
Pull: همگام نگهداشتن پروژه
اگر از سیستم دیگری تغییری push کردید، روی سیستم اول باید همان تغییرات را بگیرید:
git pull
قانون طلایی: همیشه قبل از شروع کار روی پروژه یکبار git pull بزنید تا از آخرین نسخه شروع کنید.
یک نگاه به Pull Request
وقتی چند نفر روی یک پروژه کار میکنند — یا حتی خودتان، برای بررسی تغییرات پیش از قطعیشدن — بهجای push مستقیم روی main، یک شاخهٔ (branch) جدا میسازید:
git checkout -b feature/add-tags-column
# … تغییرات را اعمال و commit کنید …
git push -u origin feature/add-tags-column
در گیتهاب دکمهٔ Compare & pull request ظاهر میشود — Pull Request یعنی «این تغییرات را بررسی کن و اگر خوب بود، با main ادغام کن». مستندات: About pull requests.
جدول مرجع سریع
| دستور | کاربرد |
|---|---|
git init | شروع کنترل نسخه در یک پوشه |
git status | چه چیزی تغییر کرده |
git add <file> | آمادهسازی فایل برای commit |
git commit -m "…" | ثبت یک عکسفوری با پیام |
git push | آپلود commitها به گیتهاب |
git pull | دانلود تغییرات جدید از گیتهاب |
git clone <url> | دانلود کامل یک ریپو |
git log | تاریخچهٔ commitها |
تمرین
یک ریپوی جدید در گیتهاب بسازید، اسکریپت quotes_selenium.py از آموزش Selenium را با git init و git add/git commit وارد کنترل نسخه کنید و آن را push کنید. بعد در یک پوشهٔ دیگر آن را clone کنید تا مطمئن شوید همهچیز درست منتقل شده.