Git 2026

فصل ۳۴ · کارگاه عملی

کارگاه — چهار مینی‌پروژه از صفر تا PR

چهار تمرین عملی از ساخت مخزن تا PR. هر تمرین را خودت اجرا کن؛ فقط خواندن کافی نیست.

🎯 اهداف یادگیری

  • چهار سناریوی واقعی را کامل طی کنی
  • از VS Code و gh با هم استفاده کنی
  • خروجی قابل‌نمایش برای رزومه بسازی

🧪 پروژه ۱ — مخزن شخصی تمیز

هدف: ریپوی learning-git با README فارسی، LICENSE، و دو کامیت Conventional.

اسکلت
mkdir learning-git && cd learning-git
git init -b main
# README و LICENSE بساز
git add README.md LICENSE
git commit -m "chore: bootstrap learning repo"
gh repo create learning-git --public --source=. --remote=origin --push

در VS Code Publish را هم می‌توانی بزنی. معیار موفقیت: کامیت Verified، ریپو با About و Topic.

🧪 پروژه ۲ — فیچر با PR و تعارض عمدی

  1. شاخه feat/hello از main
  2. فایل hello.md را تغییر بده، PR باز کن (Draft)
  3. روی main همان فایل را جور دیگر عوض کن و push کن (با PR جدا یا مستقیم اگر آزمایش شخصی است)
  4. تعارض را در VS Code Merge Editor حل کن
  5. CI حداقلی (حتی echo ok) بگذار تا Check سبز شود
  6. Squash merge

معیار: اسکرین شات Merge Editor در README کارگاه.

🧪 پروژه ۳ — accidental secret و نجات

  1. عمداً .env را کامیت کن
  2. Push protection اگر گرفت، آفرین — دورش نزن
  3. اگر نگرفت: rm --cached، gitignore، توکن ساختگی را rotate فرض کن
  4. توضیح بده چرا filter-repo لازم می‌شد اگر توکن واقعی بود
هرگز توکن واقعی تمرین نکن

فقط مقدار SECRET=fake .

🧪 پروژه ۴ — Actions و PDF

اگر همین کتاب را می‌سازی:

ایده
- python src/build.py --html
# artifact HTML را آپلود کن

PR که CSS را عوض می‌کند باید HTML را به‌عنوان artifact بسازد. معیار: تب Checks در VS Code سبز.

🧩 چالش اضافه (سطح Senior)

  • worktree جدا برای hotfix
  • rebase -i برای تمیز کردن پنج کامیت WIP
  • Ruleset روی main در ریپوی خودت (اگر حساب اجازه می‌دهد)
  • gh pr create بدون مرورگر
خروجی قابل‌اشتراک

یک gist یا بخش README با فرمان‌های استفاده‌شده و دو اسکرین: Graph قبل/بعد از rebase.

✅ چک‌لیست فهم

  • چهار پروژه تیک خورده
  • حداقل یک تعارض واقعی حل شده
  • یک workflow سبز دیده‌ای

فصل بعد: بیست اشتباه رایج.

فصل ۳۴ از ۳۶ · مرجع جامع و حرفه‌ای Git و GitHub · ویرایش 1.0.0