ممکن است این فصل را مستقیماً از فصلی بسیار قبلی باز کرده باشید، یا اینکه پس از خواندن ترتیبی کل کتاب تا اینجا به آن رسیدهاید — در هر صورت، اینجا قرار است به سازوکارهای درونی و پیادهسازی گیت بپردازیم. ما دیدیم که فهم این اطلاعات برای درک اهمیت و توانمندی گیت بنیادی است، اما برخی دیگر به ما گفتهاند که برای مبتدیان میتواند گیجکننده و بیجهت پیچیده باشد. بنابراین، این بحث را به عنوان آخرین فصل کتاب قرار دادهایم تا بتوانید آن را زود یا دیر در روند یادگیریتان بخوانید. تصمیم با شماست.
حالا که اینجا هستید، بیایید شروع کنیم. ابتدا، اگر هنوز برایتان روشن نیست، گیت بنیاداً یک سیستم فایل آدرسدهی بر اساس محتوا است که یک رابط کاربری کنترل نسخه (VCS) روی آن قرار گرفته است. کمی بعد بیشتر در مورد معنای این جمله خواهید آموخت.
در روزهای نخستین گیت (عمدتاً پیش از نسخهٔ 1.5)، رابط کاربری بسیار پیچیدهتر بود چون بیشتر آن سیستم فایل را برجسته میساخت تا یک VCS پالایششده. در چند سال اخیر، رابط کاربری تا حدی تصحیح شده که اکنون به اندازهٔ هر سیستم دیگری تمیز و آسان برای استفاده است؛ با این حال، کلیشهٔ رابط کاربری اولیهٔ گیت که پیچیده و دشوار برای یادگیری بود، همچنان پابرجاست.
لایهٔ سیستم فایل آدرسدهیشده بر اساس محتوا فوقالعاده جالب است، بنابراین ابتدا آن را در این فصل پوشش میدهیم؛ سپس دربارهٔ سازوکارهای انتقال و کارهای نگهداری مخزن که ممکن است نهایتاً با آنها سروکار داشته باشید، خواهید آموخت.
در این مرحله، شما باید درک نسبتاً خوبی از عملکرد داخلی گیت و تا حدودی از نحوهی پیادهسازی آن پیدا کرده باشید. این فصل به تعدادی از دستورات پلومبینگ (plumbing) پرداخته است — دستورات سطح پایین و سادهتری نسبت به دستورات پورسلین (porcelain) که در سایر بخشهای کتاب با آنها آشنا شدهاید. درک نحوهی عملکرد گیت در سطح پایین، باعث میشود راحتتر بفهمید چرا گیت کاری را انجام میدهد که انجام میدهد و همچنین به شما امکان میدهد ابزارها و اسکریپتهای کمکی مخصوص به جریان کاری خودتان را بنویسید.
گیت به عنوان یک فایلسیستم محتوای-آدرسپذیر ابزار بسیار قدرتمندی است که میتوانید از آن فراتر از یک سیستم کنترل نسخه استفاده کنید. امیدواریم بتوانید از دانش تازه بهدستآمده در مورد ساختار داخلی گیت برای پیادهسازی برنامههای خلاقانهی خود بهره ببرید و با استفاده از گیت به روشهای پیشرفتهتر احساس راحتی کنید.