کدنامهمرجع‌های مهندسی نرم‌افزار، به فارسی

گیت

Git

بیشتر آدم‌ها Git را با حفظ کردن پنج دستور یاد می‌گیرند و بعد هر بار که چیزی غیرمنتظره می‌شود، مخزن را پاک می‌کنند و از نو clone می‌گیرند. این مسیر آن پنج دستور را کنار می‌گذارد و از مدل داده شروع می‌کند: Git یک گراف از snapshot‌هاست. وقتی گراف را ببینی، هیچ دستوری دیگر جادو نیست و هیچ خطایی بن‌بست نیست.

۱۹فصل
۲۸۲تمرین با پاسخ
≈ ۲۹ ساعتزمان تخمینی
۳پروژهٔ نهایی

پیشرفت تو

۰٪

درصد هر فصل از دو چیز می‌آید: چقدر از بخش‌هایش را خوانده‌ای (۵۵٪) و چند تمرینش را تیک زده‌ای (۴۵٪). همه‌چیز داخل مرورگر خودت می‌ماند.

فصل

فصل‌ها به هم وابسته‌اند و ترتیبشان معنا دارد. هر مسیر با پروژه‌های نهایی تمام می‌شود: ساده، متوسط، پیچیده.

۱

مسئله‌ای که Git حل می‌کند

چرا «کپی پوشه با تاریخ» جواب نمی‌دهد، و کنترل نسخه از کجا آمد.

۰٪
۲

مدل داده: blob، tree، commit

Git یک پایگاه‌دادهٔ کلید-مقدار است. همه‌چیز از اینجا نتیجه می‌شود.

۰٪
۳

سه ناحیه: working، staging، repository

چرا staging وجود دارد و چطور درست ازش استفاده کنیم.

۰٪
۴

خواندن تاریخچه

log، show، diff — و پیدا کردن اینکه چه کسی چه چیزی را کِی عوض کرد.

۰٪
۵

شاخه: فقط یک اشاره‌گر

چرا ساختن شاخه در Git تقریباً رایگان است.

۰٪
۶

merge و حل تعارض

fast-forward، merge commit، و اینکه تعارض واقعاً یعنی چه.

۰٪
۷

rebase

بازنویسی تاریخچه، و قانون طلایی‌اش.

۰٪
۸

مخزن راه دور

fetch در برابر pull، push، و tracking branch.

۰٪
۹

برگرداندن: reset، revert، restore

سه راه «برگرد عقب» که سه کار متفاوت می‌کنند.

۰٪
۱۰

reflog: تور نجات

ردّ حرکت refها را پیدا کن؛ و مرزهای واقعی بازیابی را بشناس.

۰٪
۱۱

stash، cherry-pick، tag

کار نیمه‌تمام را امن کنار بگذار، hotfix مشخص را انتخابی بیاور و انتشار را با tag دقیق مشخص کن.

۰٪
۱۲

bisect: پیدا کردن commit خراب

با آزمون تکرارپذیر، مرز سالم و خراب را در تاریخچه پیدا کن و نتیجه را با patch ثابت کن.

۰٪
۱۳

استراتژی شاخه‌بندی

عمر شاخه، انتشار، CI و نیازهای تیم را بسنج؛ trunk-based، GitHub Flow یا Git Flow را با هزینه‌ها و trade-offهایش انتخاب کن.

۰٪
۱۴

کار تیمی: PR و بازبینی کد

commitهای معنادار، توضیح روشن PR، گفت‌وگوی سازندهٔ review، checkهای CI و انتخاب روش merge با دیدن تاریخچه.

۰٪
۱۵

ابزارهای پیشرفته

worktree، submodule، sparse checkout، hook و LFS.

۰٪
۱۶

وقتی همه‌چیز خراب شد

از نشانه تا مدرک و تشخیص: نجات امن refها، commitها و دادهٔ Git، و شناخت مرز چیزی که هرگز ذخیره نشده است.

۰٪
۱۷

پروژهٔ ۱ — تاریخچهٔ تمیز

یک مخزن محلیِ آشفته را با staging دقیق و rebase تعاملی به تاریخچه‌ای خوانا تبدیل کن؛ محتوا را با آزمون و مقایسهٔ درخت ثابت کن.

۰٪
پروژهٔ ساده
۱۸

پروژهٔ ۲ — گردش کار تیمی

با bare remote و دو clone، دو feature هم‌زمان را با PR، review، حل تعارض و merge policy یکپارچه کن؛ همگامی آلیس و باب را با شواهد ثابت کن.

۰٪
پروژهٔ متوسط
۱۹

پروژهٔ ۳ — نجات مخزن

cloneهای خراب را با reflog، rescue ref، بررسی objectها و نگه‌داشتن کار هم‌تیمی ترمیم کن؛ تفاوت دادهٔ بازیافتنی و فایلی را که Git ذخیره نکرده با مدرک گزارش بده.

۰٪
پروژهٔ پیچیده