در این جلسه با خودِ Git آشنا میشویم، آن را نصب میکنیم، چند تنظیم ضروری انجام میدهیم و اولین مخزن (Repository) را میسازیم تا اولین کامیت خودمان را ثبت کنیم.
اهداف
- شناخت کوتاه Git و تفاوت آن با GitHub
- درک سه ناحیهٔ اصلی: Working Directory، Staging Area، Repository
- نصب Git روی ویندوز/مک/لینوکس و بررسی نسخه
- پیکربندی نام، ایمیل و شاخهٔ پیشفرض + ویرایشگر
- ساخت اولین مخزن و ثبت اولین کامیت
Git چیست؟ تفاوت با GitHub
Git ابزاری برای مدیریت نسخههای کد است؛ تمام تغییرات پروژه را روی سیستم شما نگه میدارد تا هر زمان خواستید به نسخهٔ قبلی برگردید یا روی چند شاخه (branch) همزمان کار کنید — حتی بدون اینترنت.
GitHub یک وبسایت است که مخزنهای Git را آنلاین میزبانی میکند و همکاری تیمی را ساده میسازد: Pull Request، Code Review، Issue و غیره. Git و GitHub یکی نیستند؛ اولی «ابزار»، دومی «میزبانی/همکاری» است.
پیشنهاد:
/assets/git-vs-github.png (1280×720) با متن انگلیسی داخل تصویر
سه ناحیهٔ گیت (چرخهٔ کار)
در گیت هر فایل در یکی از این سه ناحیه است. فهمیدن همین سهتا، ۸۰٪ کار با گیت را حل میکند:
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 در پروژههای بزرگ.
پیشنهاد:
/assets/git-areas.png (1280×720) با فلشها و متن انگلیسی داخل تصویر
نصب Git (گامبهگام و بیدردسر)
بهترین راه برای شما به سیستمعاملتان بستگی دارد. یکی از روشهای زیر را انجام دهید و سپس نسخه را بررسی کنید.
روش ۱) نصاب رسمی (پیشنهادی)
- از git-scm.com دانلود و نصب کنید.
- در مراحل نصب:
- Editor: اگر VS Code دارید، گزینهٔ آن را انتخاب کنید.
- PATH: «Git from the command line …»
- EOL: «Checkout Windows-style, commit Unix-style»
- Default branch:
main
- تمام. «Git Bash» و «Git GUI» اضافه میشوند.
روش ۲) بستهمدیرها
winget install --id Git.Git -e --source winget
# یا
choco install git -y
git شناخته نشد، ترمینال را ببند/باز کن یا Logout/Login.روش ۱) Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install git
روش ۲) Xcode Command Line Tools
xcode-select --install
روش ۳) نصاب رسمی
- از git-scm.com فایل DMG را دانلود کنید.
- نصب کنید و ترمینال را دوباره باز کنید.
نصب با بستهمدیر توزیع
# 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
۱) بررسی نصب (به تفکیک سیستمعامل)
از 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
گام ۲) شاخهٔ پیشفرض
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
# مشاهدهٔ همهٔ تنظیمات Global
git config --global --list
پیشنهاد:
/assets/git-editor-vscode.png (1280×720) — تصویر تنظیم core.editor یا ویرایش پیام commit
ساخت اولین مخزن و ثبت اولین کامیت
یک پوشهٔ تازه بساز، آن را به مخزن 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"
echo بهدرستی کار نکرد، فایل را در ویرایشگر بسازید و ذخیره کنید.
پیشنهاد:
/assets/folder-dotgit.png (1200×600) — نمایش فعالسازی «نمایش فایلهای مخفی»
.git قلب مخزن شماست؛ تاریخچه و تنظیمات در آن است.بررسی وضعیت و تاریخچه
با دو دستور کلیدیِ زیر همیشه بفهمید «کجا هستید و چه شده است»:
وضعیت
git status
تاریخچه
git log --oneline
git log --graph --decorate --oneline
دسترسی به راهنما (help)
اگر مطمئن نیستید یک دستور چه سوئیچهایی دارد، سراغ راهنما بروید:
git help
git help commit
git help log
تمرین
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را تنظیم کن.