جلسه 1: شروع کار با Git

سطح: مقدماتی زمان مطالعه: به‌روزرسانی: 2025-10-30
1 2 3 4 5 6 7 8 9 10

در این جلسه با خودِ Git آشنا می‌شویم، آن را نصب می‌کنیم، چند تنظیم ضروری انجام می‌دهیم و اولین مخزن (Repository) را می‌سازیم تا اولین کامیت خودمان را ثبت کنیم.

این جلسه از صفر شروع می‌کند و هیچ نیازی به تجربهٔ قبلی ندارد. اگر تنها یک ویرایشگر متن (مثل VS Code) و ترمینال داشته باشید کافی است.

اهداف

  • شناخت کوتاه Git و تفاوت آن با GitHub
  • درک سه ناحیهٔ اصلی: Working Directory، Staging Area، Repository
  • نصب Git روی ویندوز/مک/لینوکس و بررسی نسخه
  • پیکربندی نام، ایمیل و شاخهٔ پیش‌فرض + ویرایشگر
  • ساخت اولین مخزن و ثبت اولین کامیت

Git چیست؟ تفاوت با GitHub

Git ابزاری برای مدیریت نسخه‌های کد است؛ تمام تغییرات پروژه را روی سیستم شما نگه می‌دارد تا هر زمان خواستید به نسخهٔ قبلی برگردید یا روی چند شاخه (branch) هم‌زمان کار کنید — حتی بدون اینترنت.

GitHub یک وب‌سایت است که مخزن‌های Git را آنلاین میزبانی می‌کند و همکاری تیمی را ساده می‌سازد: Pull Request، Code Review، Issue و غیره. Git و GitHub یکی نیستند؛ اولی «ابزار»، دومی «میزبانی/همکاری» است.

جای تصویر «نمودار مفهومی: تفاوت Git (ابزار محلی) و GitHub (میزبانی/همکاری آنلاین)»
پیشنهاد: /assets/git-vs-github.png (1280×720) با متن انگلیسی داخل تصویر
مقایسهٔ سریع: Git = ابزار کنترل نسخهٔ محلی | GitHub = میزبانی/همکاری آنلاین.

سه ناحیهٔ گیت (چرخهٔ کار)

در گیت هر فایل در یکی از این سه ناحیه است. فهمیدن همین سه‌تا، ۸۰٪ کار با گیت را حل می‌کند:

Working Directory

جایی که فایل‌ها را ویرایش می‌کنی. تغییرات اینجا هنوز «ثبت» نشده‌اند و با git status به‌صورت modified / untracked دیده می‌شوند.

Staging Area

لیست تغییراتی که آمادهٔ ثبت هستند. با git add انتخاب می‌کنی کدام تغییرها وارد کامیت بعدی شوند؛ با git restore --staged هم می‌توانی از Stage برشان گردانی.

Repository (History)

تاریخچهٔ نهاییِ پروژه؛ هر commit یک «نقطهٔ ذخیره» است که بعداً می‌توانی به آن برگردی، شاخه بسازی یا نسخه منتشر کنی.

یک مثال کوتاه


# فایل را ویرایش کن → هنوز در Working Directory است
git status

# انتخاب تغییرات برای کامیت بعدی → انتقال به Staging Area
git add README.md
git status

# پشیمان شدی؟ برگردان از Stage
git restore --staged README.md

# ثبت نهایی در Repository (تاریخچه)
git add README.md
git commit -m "docs: update README with installation notes"
تمامی این دستورات را به‌تفصیل در طول دوره یاد می‌گیریم؛ اینجا فقط نقشهٔ راه است.

نکتهٔ فنی: Snapshot نه فقط diff

در Git هر commit مثل یک عکس لحظه‌ای (Snapshot) از کل پروژه است. یعنی گیت وضعیت هر فایل را در آن لحظه ثبت می‌کند؛ اما برای صرفه‌جویی، محتواهای تکراری را دوباره ذخیره نمی‌کند و از همان دادهٔ قبلی استفاده می‌کند (deduplication). نتیجه: کامیت و شاخه‌سازی سبک و سریع، و بازگشت مطمئن—even در پروژه‌های بزرگ.

جای تصویر «سه ناحیهٔ گیت: Working → Staging → Repository → Remote»
پیشنهاد: /assets/git-areas.png (1280×720) با فلش‌ها و متن انگلیسی داخل تصویر
نمودار چرخهٔ کار: از ویرایش تا ثبت نهایی و ارسال به ریموت.

نصب Git (گام‌به‌گام و بی‌دردسر)

بهترین راه برای شما به سیستم‌عامل‌تان بستگی دارد. یکی از روش‌های زیر را انجام دهید و سپس نسخه را بررسی کنید.

روش ۱) نصاب رسمی (پیشنهادی)

  1. از git-scm.com دانلود و نصب کنید.
  2. در مراحل نصب:
    • Editor: اگر VS Code دارید، گزینهٔ آن را انتخاب کنید.
    • PATH: «Git from the command line …»
    • EOL: «Checkout Windows-style, commit Unix-style»
    • Default branch: main
  3. تمام. «Git Bash» و «Git GUI» اضافه می‌شوند.

روش ۲) بسته‌مدیرها

winget install --id Git.Git -e --source winget
# یا
choco install git -y
اگر git شناخته نشد، ترمینال را ببند/باز کن یا Logout/Login.
در ویندوز می‌توانید از Git Bash یا PowerShell استفاده کنید.

روش ۱) Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install git
اگر Brew نصب است، فقط خط دوم را اجرا کنید.

روش ۲) Xcode Command Line Tools

xcode-select --install
نسخهٔ Git معمولاً قدیمی‌تر است؛ Brew به‌روزتر می‌دهد.

روش ۳) نصاب رسمی

  1. از git-scm.com فایل DMG را دانلود کنید.
  2. نصب کنید و ترمینال را دوباره باز کنید.

نصب با بسته‌مدیر توزیع

# Debian/Ubuntu
sudo apt update && sudo apt install -y git

# Fedora / RHEL (dnf)
sudo dnf install -y git

# Arch / Manjaro
sudo pacman -S git

# openSUSE
sudo zypper install git
برای نسخه‌های جدیدتر، مخازن backports/third-party یا ساخت از سورس.

۱) بررسی نصب (به تفکیک سیستم‌عامل)

از PowerShell/Command Prompt یا Git Bash استفاده کنید:

git --version
where git
  • اگر git شناخته نشد: ترمینال را ببند/باز کن یا Logout/Login. گزینهٔ PATH در نصب باید فعال باشد.
  • خروجی نمونه: git version 2.xx.x.windows.1 و مسیری مثل C:\Program Files\Git\cmd\git.exe.

Git ممکن است از طریق Xcode CLT یا Homebrew نصب باشد:

git --version
which git
  • /usr/bin/git (Xcode CLT) یا /opt/homebrew/bin/git//usr/local/bin/git (Brew).
  • اگر دو نسخه دارید، PATH را طوری بچینید که Brew مقدم باشد.

ابتدا نسخه و مسیر را چک کنید:

git --version
which git

اگر نصب نیست، از دستورهای بخش «نصب با بسته‌مدیر» استفاده کنید.

پیکربندی اولیه (یک‌بار برای همیشه)

قبل از هر پروژه، Git باید بداند چه کسی تغییرات را ثبت می‌کند (نام/ایمیل)، شاخهٔ پیش‌فرض چه باشد، با چه ویرایشگری پیام‌ها را باز کند، و چگونه پایان‌خط‌ها را مدیریت کند تا بین ویندوز/مک/لینوکس به‌هم نریزد.

گام ۱) هویت: نام و ایمیل

git config --global user.name  "Your Name"
git config --global user.email you@example.com
اگر نمی‌خواهید ایمیل واقعی نمایش داده شود، در GitHub ایمیل خصوصی noreply بسازید و همین را ست کنید.

گام ۲) شاخهٔ پیش‌فرض

git config --global init.defaultBranch main
اگر مخزنی با master دارید: git branch -M main.

گام ۳) ویرایشگر پیش‌فرض (پیشنهادی: VS Code)

git config --global core.editor "code --wait"
گزینهٔ --wait باعث می‌شود Git تا بستن فایل در VS Code صبر کند.

گام ۴) پایان‌خط‌ها (EOL)

# Windows
git config --global core.autocrlf true
# macOS / Linux
git config --global core.autocrlf input
این تنظیم از به‌هم‌ریختگی CRLF/LF بین سیستم‌عامل‌ها جلوگیری می‌کند.
# مشاهدهٔ همهٔ تنظیمات Global
git config --global --list
جای تصویر «VS Code به‌عنوان ویرایشگر پیش‌فرض Git»
پیشنهاد: /assets/git-editor-vscode.png (1280×720) — تصویر تنظیم core.editor یا ویرایش پیام commit
پیشنهاد تصویری: VS Code هنگام ویرایش پیام کامیت.

ساخت اولین مخزن و ثبت اولین کامیت

یک پوشهٔ تازه بساز، آن را به مخزن Git تبدیل کن، یک فایل اضافه کن و اولین کامیت را ثبت کن.

گام به گام

# 1) ساخت پوشه و ورود به آن
mkdir hello-git
cd hello-git

# 2) تبدیل به مخزن گیت (شاخهٔ اصلی = main)
git init -b main
# اگر دستور بالا پشتیبانی نشد:
# git init
# git branch -M main

# 3) ساخت یک فایل ساده
echo "# اولین پروژهٔ گیت" > README.md

# 4) افزودن به Staging
git add README.md

# 5) ثبت تغییرات (Commit)
git commit -m "feat: اولین کامیت - افزودن README"
اگر از Windows PowerShell استفاده می‌کنید و دستور echo به‌درستی کار نکرد، فایل را در ویرایشگر بسازید و ذخیره کنید.
جای تصویر «نمای پوشهٔ پروژه با فولدر مخفی .git»
پیشنهاد: /assets/folder-dotgit.png (1200×600) — نمایش فعال‌سازی «نمایش فایل‌های مخفی»
پوشهٔ پنهان .git قلب مخزن شماست؛ تاریخچه و تنظیمات در آن است.

بررسی وضعیت و تاریخچه

با دو دستور کلیدیِ زیر همیشه بفهمید «کجا هستید و چه شده است»:

وضعیت

git status
نمایش فایل‌های تغییرکرده، staged/unstaged و شاخهٔ فعلی.

تاریخچه

git log --oneline
git log --graph --decorate --oneline
نمای فشرده و گرافی از تاریخچهٔ کامیت‌ها.

دسترسی به راهنما (help)

اگر مطمئن نیستید یک دستور چه سوئیچ‌هایی دارد، سراغ راهنما بروید:

git help
git help commit
git help log
در بیشتر سیستم‌ها، راهنما در مرورگر یا صفحهٔ man باز می‌شود. خروج از صفحهٔ man با کلید Q است.

تمرین

پیام کامیت را کوتاه و واضح بنویس: یک عنوان حداکثر ~۵۰ کاراکتر (مثلاً: feat: add README).

خطاهای رایج و راه‌حل سریع

  • git شناخته نمی‌شود: ترمینال را ببند/باز کن یا سیستم را یک‌بار Logout کن. در ویندوز مطمئن شو نصب‌کننده PATH را تنظیم کرده است.
  • نام/ایمیل تنظیم نشده: پیام خطا هنگام کامیت می‌گوید. با git config --global user.name/email تنظیم کن.
  • شاخهٔ main ساخته نشد و اسمش master است: git branch -M main یا از ابتدا git init -b main.
  • مشکل CRLF/LF: مطابق سیستم‌عامل، مقدار core.autocrlf را تنظیم کن.

منابع تکمیلی