بدون کنترل نسخه، هر بار که فایلی را خراب می‌کنید مجبورید یک نسخهٔ پشتیبان دستی نگه دارید (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 شوند — دقیقاً همان اصلی که در آموزش ربات تلگرام دربارهٔ توکن هشدار دادیم.

قدم سوم: ساخت ریپو در گیت‌هاب

  1. یک اکانت رایگان در github.com/join بسازید
  2. از دکمهٔ + بالای صفحه، New repository را بزنید — یا مستقیم به github.com/new بروید
  3. یک نام بدهید (مثلاً 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 کنید تا مطمئن شوید همه‌چیز درست منتقل شده.

بازگشت به آموزش‌ها