'\" t .\" Title: gitrepository-layout .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: Git Manual .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GITREPOSITORY\-LAYOUT" "5" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" gitrepository-layout \- ساختار دایرکتوری و چیدمان مخزن گیت .SH "خلاصه (SYNOPSIS)" .sp $GIT_DIR/* .SH "توضیحات (DESCRIPTION)" .sp یک مخزن گیت در دو نوع متفاوت عرضه می‌شود: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک دایرکتوری \fB\&.git\fR در ریشه درخت کاری (working tree)؛ .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک دایرکتوری \fI\fR\fB\&.git\fR که یک مخزن \fIخام\fR (bare - یعنی بدون درخت کاری اختصاصی خود) است، که معمولاً برای تبادل تاریخچه‌ها با دیگران از طریق ارسال (push) به آن و واکشی (fetch) از آن استفاده می‌شود\&. .RE .sp \fBنکته\fR: همچنین می‌توانید یک فایل متنی ساده به نام \fB\&.git\fR در ریشه درخت کاری خود داشته باشید که حاوی \fBgitdir:\fR \fI\fR برای اشاره به دایرکتوری واقعی حاوی مخزن باشد\&. این سازوکار \fIgitfile\fR نامیده می‌شود و معمولاً از طریق دستورات \fBgit\fR \fBsubmodule\fR و \fBgit\fR \fBworktree\fR مدیریت می‌شود\&. این قابلیت اغلب برای درخت کاری یک زیرماژول (submodule checkout) استفاده می‌شود تا به شما در ابرپروژه (superproject) دربرگیرنده اجازه دهد شاخه‌ای را با \fBgit\fR \fBcheckout\fR بررسی کنید که فاقد آن زیرماژول است\&. دستور \fBcheckout\fR باید کل درخت کاری زیرماژول را بدون از دست دادن مخزن زیرماژول حذف کند\&. .sp این موارد ممکن است در یک مخزن گیت وجود داشته باشند: .PP objects .RS 4 مخزن اشیاء (object store) مرتبط با این مخزن\&. معمولاً یک شیءدان خودکفا است (یعنی تمام اشیایی که توسط یک شیء موجود در آن مورد ارجاع قرار گرفته‌اند نیز در آن یافت می‌شوند)، اما چند راه برای نقض این اصل وجود دارد\&. .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} می‌توانید با ایجاد یک کلون کم‌عمق (shallow clone)، یک مخزن ناقص اما به صورت محلی قابل استفاده داشته باشید\&. به \fBgit-clone\fR(1) مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} می‌توانید از سازوکارهای \fBobjects/info/alternates\fR یا \fB$GIT_ALTERNATE_OBJECT_DIRECTORIES\fR برای \fIقرض گرفتن\fR اشیاء از سایر شیءدان‌ها استفاده کنید\&. مخزنی با این نوع شیءدان ناقص برای انتشار و استفاده با پروتکل‌های انتقال ساده مناسب نیست، اما تا زمانی که \fBobjects/info/alternates\fR به شیءدان‌هایی که از آن‌ها اشیاء قرض می‌گیرد اشاره می‌کند مشکلی ندارد\&. .sp اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد این دایرکتوری نادیده گرفته شده و به جای آن از "$GIT_COMMON_DIR/objects" استفاده خواهد شد\&. .RE .RE .PP objects/[0\-9a\-f][0\-9a\-f] .RS 4 هر شیء تازه ایجادشده در فایل مخصوص به خود ذخیره می‌شود\&. این اشیاء با استفاده از دو نویسه نخست نام شیء بر مبنای sha1 در میان ۲۵۶ زیرشاخه پخش می‌شوند تا تعداد ورودی‌های دایرکتوری در خود \fBobjects\fR در حد قابل مدیریتی باقی بماند\&. اشیایی که در اینجا یافت می‌شوند اغلب اشیای \fIبسته‌بندی‌نشده\fR (یا \fIمنفرد / loose\fR) نامیده می‌شوند\&. .RE .PP objects/pack .RS 4 بسته‌ها (فایل‌هایی که اشیای زیادی را در قالب فشرده به همراه فایل‌های ایندکس نگهداری می‌کنند تا امکان دسترسی تصادفی به آن‌ها فراهم شود) در این دایرکتوری قرار دارند\&. .RE .PP objects/info .RS 4 اطلاعات بیشتر در مورد شیءدان در این دایرکتوری ثبت می‌شود\&. .RE .PP objects/info/packs .RS 4 این فایل به پروتکل‌های انتقال ساده کمک می‌کند تا بسته‌های موجود در این شیءدان را کشف کنند\&. هر زمان که بسته‌ای اضافه یا حذف می‌شود، در صورتی که مخزن برای انتقال‌های ساده منتشر شده باشد، باید \fBgit\fR \fBupdate\-server\-info\fR اجرا شود تا این فایل به‌روز نگه داشته شود\&. \fIgit repack\fR به طور پیش‌فرض این کار را انجام می‌دهد\&. .RE .PP objects/info/alternates .RS 4 این فایل مسیرهای شیءدان‌های جایگزینی را که این شیءدان از آن‌ها اشیاء قرض می‌گیرد، در هر خط یک مسیر، ثبت می‌کند\&. توجه داشته باشید که نه‌تنها ابزارهای بومی گیت از آن به صورت محلی استفاده می‌کنند، بلکه واکشی‌کننده HTTP نیز سعی می‌کند از راه دور از آن استفاده کند؛ اگر در فایل alternates خود مسیرهای نسبی (نسبت به پایگاه‌داده اشیاء، نه نسبت به مخزن!) داشته باشید معمولاً کار خواهد کرد، اما اگر از مسیرهای مطلق استفاده کنید کار نخواهد کرد مگر اینکه مسیر مطلق در فایل‌سیستم و URL وب یکسان باشد\&. همچنین به \fBobjects/info/http\-alternates\fR مراجعه کنید\&. .RE .PP objects/info/http\-alternates .RS 4 این فایل نشانی‌های اینترنتی URL شیءدان‌های جایگزینی را که این شیءدان از آن‌ها اشیاء قرض می‌گیرد، برای زمانی که مخزن از طریق HTTP واکشی می‌شود ثبت می‌کند\&. .RE .PP refs .RS 4 ارجاعات در زیرشاخه‌های این دایرکتوری ذخیره می‌شوند\&. دستور \fIgit prune\fR می‌داند که باید اشیای قابل دسترسی از ارجاعات موجود در این دایرکتوری و زیرشاخه‌های آن را حفظ کند\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد، این دایرکتوری (به جز refs/bisect، refs/rewritten و refs/worktree) نادیده گرفته شده و به جای آن از "$GIT_COMMON_DIR/refs" استفاده خواهد شد\&. .RE .PP refs/heads/\fBname\fR .RS 4 اشیای کامیت نوک شاخه \fBname\fR را ثبت می‌کند\&. .RE .PP refs/tags/\fBname\fR .RS 4 نام هر شیئی را ثبت می‌کند (لزوماً یک شیء کامیت نیست، یا شیء تگی که به یک شیء کامیت اشاره کند)\&. .RE .PP refs/remotes/\fBname\fR .RS 4 اشیای کامیت نوک شاخه‌های کپی‌شده از یک مخزن راه دور را ثبت می‌کند\&. .RE .PP refs/replace/\fI\fR .RS 4 مقدار SHA\-1 شیئی را که جایگزین \fI\fR می‌شود ثبت می‌کند\&. این شبیه به info/grafts است و به صورت داخلی توسط \fBgit-replace\fR(1) استفاده و نگهداری می‌شود\&. برخلاف grafts، چنین ارجاعاتی می‌توانند میان مخازن تبادل شوند\&. .RE .PP packed\-refs .RS 4 همان اطلاعات refs/heads/، refs/tags/ و موارد مشابه را به روشی کارآمدتر ثبت می‌کند\&. به \fBgit-pack-refs\fR(1) مراجعه کنید\&. اگر $GIT_COMMON_DIR تنظیم شده باشد این فایل نادیده گرفته شده و به جای آن از "$GIT_COMMON_DIR/packed\-refs" استفاده می‌شود\&. .RE .PP HEAD .RS 4 یک ارجاع نمادین یا symref (واژه‌نامه را ببینید) به فضای نام \fBrefs/heads/\fR که شاخه فعال فعلی را توصیف می‌کند\&. اگر مخزن با هیچ درخت کاری مرتبط نباشد (یعنی یک مخزن \fIخام\fR یا bare)، معنای زیادی ندارد، اما یک مخزن معتبر گیت \fBباید\fR فایل HEAD را داشته باشد؛ برخی ابزارهای سطح بالا (porcelains) ممکن است از آن برای حدس زدن شاخه «پیش‌فرض» مخزن (معمولاً \fImaster\fR) استفاده کنند\&. اگر شاخه نام‌گذاری‌شده \fIname\fR (هنوز) وجود نداشته باشد نیز مجاز است\&. در برخی ساختارهای قدیمی، به جای یک symref، این فایل یک پیوند نمادین (symlink) است که به شاخه جاری اشاره می‌کند\&. .sp همچنین HEAD می‌تواند مستقیماً یک کامیت خاص را ثبت کند، به جای اینکه یک symref برای اشاره به شاخه جاری باشد\&. چنین وضعیتی اغلب \fIHEAD جداشده (detached HEAD)\fR نامیده می‌شود\&. برای جزئیات به \fBgit-checkout\fR(1) مراجعه فرمایید\&. .RE .PP config .RS 4 فایل پیکربندی اختصاصی مخزن\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد، این فایل نادیده گرفته شده و از "$GIT_COMMON_DIR/config" استفاده خواهد شد\&. .RE .PP config\&.worktree .RS 4 فایل پیکربندی اختصاصی دایرکتوری کاری برای دایرکتوری کاری اصلی در ساختار چند درخت کاری (به \fBgit-worktree\fR(1) مراجعه کنید)\&. .RE .PP branches .RS 4 یک روش منسوخ‌شده برای ذخیره نام‌های کوتاه جهت مشخص کردن یک URL برای دستورات \fIgit fetch\fR، \fIgit pull\fR و \fIgit push\fR\&. یک فایل می‌تواند به صورت \fBbranches/\fR\fI\fR ذخیره شود و سپس \fIname\fR می‌تواند به جای آرگومان \fIrepository\fR به این دستورات داده شود\&. برای جزئیات بخش REMOTES در \fBgit-fetch\fR(1) را ببینید\&. این سازوکار قدیمی است و بعید است در مخازن امروزی یافت شود\&. اگر $GIT_COMMON_DIR تنظیم شده باشد این دایرکتوری نادیده گرفته شده و از "$GIT_COMMON_DIR/branches" استفاده می‌شود\&. .sp گیت در نسخه Git 3\&.0 خواندن مخازن راه دور از این دایرکتوری را متوقف خواهد کرد\&. .RE .PP hooks .RS 4 هوک‌ها اسکریپت‌های سفارشی‌سازی هستند که توسط دستورات گوناگون گیت استفاده می‌شوند\&. هنگام اجرای \fIgit init\fR تعدادی هوک نمونه نصب می‌شوند، اما همه آن‌ها به طور پیش‌فرض غیرفعال هستند\&. برای فعال‌سازی، پسوند \fB\&.sample\fR باید با تغییر نام از انتهای نام فایل حذف شود\&. برای جزئیات بیشتر درباره هر هوک، \fBgithooks\fR(5) را مطالعه کنید\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد این دایرکتوری نادیده گرفته شده و به جای آن از "$GIT_COMMON_DIR/hooks" استفاده خواهد شد\&. .RE .PP common .RS 4 هنگامی که از چندین درخت کاری استفاده می‌شود، بیشتر فایل‌های موجود در $GIT_DIR به ازای هر درخت کاری مجزا هستند به جز چند استثنای مشخص\&. با این حال، تمام فایل‌های زیر دایرکتوری \fIcommon\fR میان تمامی درخت‌های کاری به اشتراک گذاشته خواهند شد\&. .RE .PP index .RS 4 فایل ایندکس فعلی مخزن\&. معمولاً در یک مخزن خام یافت نمی‌شود\&. .RE .PP sharedindex\&. .RS 4 بخش ایندکس مشترک، که توسط $GIT_DIR/index و سایر فایل‌های ایندکس موقت ارجاع داده می‌شود\&. تنها در حالت ایندکس تقسیم‌شده (split index) معتبر است\&. .RE .PP info .RS 4 اطلاعات بیشتر درباره مخزن در این دایرکتوری ثبت می‌شود\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد، این دایرکتوری نادیده گرفته شده و از "$GIT_COMMON_DIR/info" استفاده خواهد شد\&. .RE .PP info/refs .RS 4 این فایل به پروتکل‌های انتقال ساده کمک می‌کند تا ارجاعات موجود در این مخزن را کشف کنند\&. اگر مخزن برای پروتکل‌های ساده منتشر شده باشد، این فایل باید هر بار که یک تگ یا شاخه ایجاد یا اصلاح می‌شود، توسط \fIgit update\-server\-info\fR مجدداً تولید شود\&. این کار معمولاً از طریق هوک \fBhooks/update\fR انجام می‌شود، که هنگام اجرای دستور \fIgit push\fR به درون مخزن، توسط دستور \fIgit\-receive\-pack\fR فراخوانی می‌گردد\&. .RE .PP info/grafts .RS 4 این فایل اطلاعات نسب جعلی کامیت را ثبت می‌کند، تا وانمود کند مجموعه والدین یک کامیت با نحوه ایجاد واقعی کامیت متفاوت است\&. هر رکورد در یک خط، یک کامیت و والدین جعلی آن را با فهرست کردن نام‌های اشیاء هگزادسیمال ۴۰ بایتی آن‌ها که با یک فاصله جدا شده و با یک خط جدید خاتمه یافته‌اند توصیف می‌کند\&. .sp توجه داشته باشید که سازوکار grafts منسوخ شده و می‌تواند منجر به بروز مشکلاتی در انتقال اشیاء میان مخازن شود؛ برای سیستمی انعطاف‌پذیرتر و قوی‌تر جهت انجام همین کار به \fBgit-replace\fR(1) مراجعه کنید\&. .RE .PP info/exclude .RS 4 این فایل بر طبق قرارداد میان ابزارهای سطح بالا، لیست الگوهای نادیده‌گیری (exclude) را ذخیره می‌کند\&. فایل \fB\&.gitignore\fR فایل نادیده‌گیری به ازای هر دایرکتوری است\&. دستورات \fIgit status\fR، \fIgit add\fR، \fIgit rm\fR و \fIgit clean\fR به آن نگاه می‌کنند اما دستورات هسته‌ای گیت آن را بررسی نمی‌کنند\&. همچنین ببینید: \fBgitignore\fR(5)\&. .RE .PP info/attributes .RS 4 مشخص می‌کند چه مشخصه‌هایی (attributes) به یک مسیر اختصاص داده شود، مشابه فایل‌های \fB\&.gitattributes\fR به ازای هر دایرکتوری\&. همچنین ببینید: \fBgitattributes\fR(5)\&. .RE .PP info/sparse\-checkout .RS 4 این فایل الگوهای بررسی کم‌پشت (sparse checkout) را ذخیره می‌کند\&. همچنین ببینید: \fBgit-read-tree\fR(1)\&. .RE .PP remotes .RS 4 نام‌های کوتاه برای URL و نام‌های پیش‌فرض ارجاع را برای استفاده هنگام تعامل با مخازن راه دور از طریق دستورات \fIgit fetch\fR، \fIgit pull\fR و \fIgit push\fR ذخیره می‌کند\&. برای جزئیات بخش REMOTES در \fBgit-fetch\fR(1) را ببینید\&. این سازوکار قدیمی است و بعید است در مخازن جدید یافت شود\&. اگر $GIT_COMMON_DIR تنظیم شده باشد این دایرکتوری نادیده گرفته شده و از "$GIT_COMMON_DIR/remotes" استفاده خواهد شد\&. .sp گیت در نسخه Git 3\&.0 خواندن مخازن راه دور از این دایرکتوری را متوقف خواهد کرد\&. .RE .PP logs .RS 4 سوابق تغییرات ایجادشده در ارجاعات در این دایرکتوری ذخیره می‌شوند\&. برای اطلاعات بیشتر به \fBgit-update-ref\fR(1) مراجعه کنید\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد، این دایرکتوری (به جز logs/HEAD) نادیده گرفته شده و از "$GIT_COMMON_DIR/logs" استفاده خواهد شد\&. .RE .PP logs/refs/heads/\fBname\fR .RS 4 تمامی تغییرات ایجادشده در نوک شاخه به نام \fBname\fR را ثبت می‌کند\&. .RE .PP logs/refs/tags/\fBname\fR .RS 4 تمامی تغییرات ایجادشده در برچسب به نام \fBname\fR را ثبت می‌کند\&. .RE .PP shallow .RS 4 این شبیه به \fBinfo/grafts\fR است اما به صورت داخلی توسط سازوکار کلون کم‌عمق (shallow clone) استفاده و نگهداری می‌شود\&. گزینه \fB\-\-depth\fR در \fBgit-clone\fR(1) و \fBgit-fetch\fR(1) را ببینید\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد این فایل نادیده گرفته شده و از "$GIT_COMMON_DIR/shallow" استفاده می‌شود\&. .RE .PP commondir .RS 4 اگر این فایل وجود داشته باشد، متغیر $GIT_COMMON_DIR (به \fBgit\fR(1) مراجعه کنید) در صورتی که صراحتاً تعیین نشده باشد، برابر با مسیر مشخص‌شده در این فایل قرار خواهد گرفت\&. اگر مسیر مشخص‌شده نسبی باشد، نسبت به $GIT_DIR سنجیده می‌شود\&. مخزن دارای commondir بدون مخزنی که توسط "commondir" به آن اشاره شده است ناقص خواهد بود\&. .RE .PP modules .RS 4 شامل مخازن گیت مربوط به زیرماژول‌ها است\&. .RE .PP worktrees .RS 4 حاوی داده‌های مدیریتی برای درخت‌های کاری پیوندداده‌شده است\&. هر زیرشاخه حاوی بخش مرتبط با درخت کاری یک درخت کاری پیوندداده‌شده است\&. اگر متغیر $GIT_COMMON_DIR تنظیم شده باشد این دایرکتوری نادیده گرفته شده و در این حالت از "$GIT_COMMON_DIR/worktrees" استفاده خواهد شد\&. .RE .PP worktrees//gitdir .RS 4 یک فایل متنی حاوی مسیر مطلق بازگشتی به فایل \&.git که به اینجا اشاره می‌کند\&. این فایل برای بررسی این موضوع استفاده می‌شود که آیا مخزن پیوندداده‌شده به صورت دستی حذف شده و دیگر نیازی به نگهداری این دایرکتوری نیست یا خیر\&. زمان تغییر (mtime) این فایل باید با هر بار دسترسی به مخزن پیوندداده‌شده به‌روزرسانی شود\&. .RE .PP worktrees//locked .RS 4 اگر این فایل وجود داشته باشد، ممکن است درخت کاری پیوندداده‌شده روی یک دستگاه قابل حمل باشد و در دسترس نباشد\&. وجود این فایل مانع از آن می‌شود که \fBworktrees/\fR\fI\fR به صورت خودکار یا دستی توسط \fBgit\fR \fBworktree\fR \fBprune\fR پاکسازی (prune) شود\&. این فایل ممکن است حاوی رشته‌ای باشد که دلیل قفل بودن مخزن را توضیح می‌دهد\&. .RE .PP worktrees//config\&.worktree .RS 4 فایل پیکربندی اختصاصی دایرکتوری کاری\&. .RE .SH "نسخه‌های قالب مخزن گیت (GIT REPOSITORY FORMAT VERSIONS)" .sp هر مخزن گیت با یک نسخه عددی در کلید \fBcore\&.repositoryformatversion\fR از فایل \fBconfig\fR خود مشخص می‌شود\&. این نسخه قواعد مربوط به کار روی داده‌های مخزن روی دیسک را مشخص می‌کند\&. هر پیاده‌سازی گیت که نسخه خاص اعلام‌شده توسط یک مخزن روی دیسک را درک نکند، نباید روی آن مخزن عملیاتی انجام دهد؛ انجام چنین کاری نه‌تنها خطر تولید نتایج نادرست را به همراه دارد، بلکه عملاً ممکن است موجب از دست رفتن داده‌ها شود\&. .sp به دلیل این قاعده، ارتقای نسخه باید در کمترین حد مطلق نگه داشته شود\&. در عوض، ما معمولاً این راهبردها را ترجیح می‌دهیم: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ارتقای شماره نسخه قالب فایل‌های داده‌ای منفرد (مانند index، فایلهای pack و غیره)\&. این کار ناسازگاری‌ها را تنها به همان فایل‌ها محدود می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} معرفی داده‌های جدیدی که هنگام استفاده توسط کلاینت‌های قدیمی‌تر به زیبایی تنزل می‌یابند (به عنوان مثال، فایل‌های نقشه بیتی pack توسط کلاینت‌های قدیمی نادیده گرفته می‌شوند، و آن‌ها صرفاً از بهینه‌سازی ارائه‌شده توسط این فایل‌ها بهره‌مند نمی‌شوند)\&. .RE .sp ارتقای نسخه قالب کل مخزن باید تنها بخشی از تغییری باشد که نتوان آن را به صورت مستقل نسخه‌بندی کرد\&. به عنوان مثال، اگر کسی بخواهد قواعد دسترسی‌پذیری اشیاء یا قواعد قفل کردن ارجاعات را تغییر دهد، این امر نیازمند ارتقای نسخه قالب مخزن خواهد بود\&. .sp توجه داشته باشید که این موضوع تنها در مورد دسترسی مستقیم به محتویات دیسک مخزن صدق می‌کند\&. یک کلاینت قدیمی‌تر که تنها فرمت \fB0\fR را می‌فهمد همچنان می‌تواند از طریق \fBgit://\fR به مخزنی متصل شود که از فرمت \fB1\fR استفاده می‌کند، تا زمانی که فرآیند سرور فرمت \fB1\fR را درک کند\&. .sp راهبرد ارجح برای عرضه یک ارتقای نسخه (چه برای کل مخزن و چه برای یک فایل منفرد) این است که خواندن قالب جدید به گیت آموزش داده شود، و نوشتن قالب جدید با یک سوییچ پیکربندی یا گزینه خط فرمان مجاز گردد (برای آزمایش یا برای کسانی که اهمیتی به سازگاری عقبرو با نسخه‌های قدیمی‌تر گیت نمی‌دهند)\&. سپس پس از یک دوره طولانی که اجازه می‌دهد قابلیت خواندن همه‌گیر شود، می‌توان نوشتن قالب جدید را به حالت پیش‌فرض تبدیل کرد\&. .sp نسخه‌های قالب فعلی تعریف‌شده عبارتند از: .SS "نسخه \fB0\fR" .sp این قالبی است که توسط نسخه اولیه گیت تعریف شده است، از جمله شامل (اما نه محدود به) قالب دایرکتوری مخزن، فایل پیکربندی مخزن، و ذخیره‌سازی اشیاء و ارجاعات\&. تشریح رفتار کامل گیت فراتر از محدوده این سند است\&. .SS "نسخه \fB1\fR" .sp این قالب با نسخه \fB0\fR یکسان است، به استثنای موارد زیر: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} هنگام خواندن متغیر \fBcore\&.repositoryformatversion\fR، یک پیاده‌سازی گیت که از نسخه ۱ پشتیبانی می‌کند باید تمام کلیدهای پیکربندی موجود در بخش \fBextensions\fR از فایل پیکربندی را نیز بخواند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} اگر یک مخزن نسخه ۱ هر کلیدی از \fBextensions\&.*\fR را مشخص کرده باشد که گیت در حال اجرا آن را پیاده‌سازی نکرده است، عملیات نباید ادامه یابد\&. به همین ترتیب، اگر مقدار هر کلید شناخته‌شده‌ای توسط پیاده‌سازی درک نشود، عملیات نباید ادامه یابد\&. .RE .sp توجه داشته باشید که اگر هیچ افزونه‌ای در فایل پیکربندی مشخص نشده باشد، آنگاه \fBcore\&.repositoryformatversion\fR باید روی \fB0\fR تنظیم شود (تنظیم آن روی \fB1\fR هیچ مزیتی ندارد و مخزن را با پیاده‌سازی‌های قدیمی‌تر گیت ناسازگار می‌کند)\&. .sp افزونه‌های تعریف‌شده در بخش \fBextensions\&.*\fR از \fBgit-config\fR(1) آورده شده‌اند\&. هر پیاده‌سازی که مایل به تعریف یک افزونه جدید باشد باید یادداشتی از آن در آنجا بگذارد تا نام را به خود اختصاص دهد\&. .SH "همچنین ببینید (SEE ALSO)" .sp \fBgit-init\fR(1), \fBgit-clone\fR(1), \fBgit-config\fR(1), \fBgit-fetch\fR(1), \fBgit-pack-refs\fR(1), \fBgit-gc\fR(1), \fBgit-checkout\fR(1), \fBgitglossary\fR(7), \m[blue]\fBThe Git User\(cqs Manual\fR\m[]\&\s-2\u[1]\d\s+2 .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1) .SH "نکات (NOTES)" .IP " 1." 4 The Git User\(cqs Manual .RS 4 \%file:///usr/share/doc/git-doc/user-manual.html .RE