Scope
This original IROSG guide covers مدل دادهٔ content-addressed در Git using the cited primary documentation.
Core model
Git repository را میتوان graphی از objectهای immutable دید. Blob محتوا، Tree ساختار مسیر و Commit اشاره به Tree و parent دارد. Branch در اصل یک ref متحرک به commit است و HEAD موقعیت فعلی را توصیف میکند.
Practical workflow
git cat-file، rev-parse و log --graph کمک میکنند abstraction را کنار بزنید. وقتی بدانید branch فقط یک ref است، reset، rebase و detached HEAD قابل فهمتر میشوند.
Failure modes
اشتباه رایج این است که reset یا rebase را «حذف جادویی فایل» ببینیم. در بسیاری از سناریوها object هنوز وجود دارد و reflog مسیر بازیابی را نگه میدارد؛ اما garbage collection و گذر زمان این فرصت را دائمی نمیکنند.
Lab
یک repository کوچک بسازید، چند commit ایجاد کنید، hashهای blob/tree/commit را با cat-file بررسی کنید، branch را جابهجا کنید و یک commit را عمداً گم کنید؛ سپس با reflog بازیابی کنید.
Production method
Capture a baseline, change one variable at a time, test positive and negative paths, keep evidence, and rehearse rollback before broad rollout.