رفتن به محتوا
LoopX

آزمون میانه‌ی دوره‌ی Git

این آزمون دو بخش اول دوره (مبانی و شاخه‌ها) را با ۲۵ سؤال سناریویی می‌سنجد. بعد از هر پاسخ، جواب درست و توضیح را می‌بینی و نتیجه‌ی نهایی در پیشرفت من ذخیره می‌شود. نمره‌ی ۲۰ از ۲۵ یا بیشتر یعنی آماده‌ای سراغ کار با GitHub بروی؛ پایین‌تر از آن، درس‌هایی را که سؤال‌هایشان را غلط زدی مرور کن.

؟ آزمون میانه‌ی دوره‌ی Git
  1. GitHub یک روز در دسترس نیست. با یک مخزن کلون‌شده روی کامپیوترت چه کارهایی هنوز ممکن است؟

  2. در خروجی git status -s این خط را می‌بینی: «MM app.py». یعنی چه؟

  3. فایلی را با rm پاک کرده‌ای. کدام دستور حذف را برای commit بعدی آماده می‌کند (به‌همراه بقیه‌ی تغییرها)؟

  4. user.email را هم در ~/.gitconfig و هم در .git/config تنظیم کرده‌ای. داخل آن مخزن کدام استفاده می‌شود؟

  5. تفاوت «/build» و «build» در .gitignore؟

  6. فایل config.local از اول commit شده؛ بعد به .gitignore اضافه‌اش کردی ولی Git هنوز تغییرهایش را می‌بیند. چرا و چه می‌کنی؟

  7. یک commit را push کرده‌ای و همکارانت گرفته‌اند؛ حالا مشخص شده اشتباه بوده. بهترین کار؟

  8. بعد از git reset --hard HEAD~2 می‌فهمی دو commit لازم بودند. چطور برشان می‌گردانی؟

  9. کدام دستور فقط تغییرهایی را نشان می‌دهد که با commit بعدی ثبت می‌شوند؟

  10. git log main..feature چه چیزی را فهرست می‌کند؟

  11. می‌خواهی بدانی چه commit ای متن «timeout=30» را برای اولین بار به کد اضافه کرده. کدام؟

  12. main بعد از جداشدن feature هیچ commit جدیدی ندارد و feature سه commit دارد. git merge feature (از main) چه می‌کند؟

  13. یک commit ادغام (three-way) چند والد دارد؟

  14. conflict را حل کرده‌ای (علامت‌ها را پاک کرده‌ای). قدم بعدی؟

  15. در ادغام، git checkout --ours فایل نسخه‌ی کدام شاخه را می‌آورد؟

  16. کدام دستور علامت‌های conflict جامانده را قبل از commit می‌گیرد؟

  17. چرا نباید commit هایی را که قبلاً push و دیگران pull کرده‌اند rebase کنی؟

  18. سه commit «wip» را می‌خواهی یکی کنی. در rebase تعاملی فهرست را چطور تغییر می‌دهی؟

  19. بعد از rebase یک شاخه‌ی شخصی که قبلاً push شده، کدام push مناسب است؟

  20. فایل جدید (untracked) داری و می‌خواهی با بقیه‌ی تغییرها کنار بگذاری. کدام؟

  21. تفاوت git stash pop و git stash apply؟

  22. پروژه‌ات 2.3.1 است. یک باگ سازگار را درست می‌کنی و بعد یک ویژگی جدید سازگار اضافه می‌کنی. نسخه‌ی بعدی (فقط باگ) و بعدی‌تر (ویژگی)؟

  23. tag ای به اسم v1.0.0 ساخته‌ای ولی همکارت آن را نمی‌بیند. چرا؟

  24. خروجی «git describe» برابر v1.4.0-5-g3a9f1c2 است. یعنی چه؟

  25. می‌خواهی روی نسخه‌ی منتشرشده‌ی v1.2.0 یک رفع باگ بسازی. کدام دستور؟