Може да сте стигнали до тази глава прескачайки директно от много по-ранна такава, а може и да сте изчели последователно всичко до тук — и в двата случая стигаме до мястото, в което ще разгледаме как работят вътрешните механизми на Git. Като автори на книгата сме на мнение, че информацията в следващите секции е фундаментално важна, ако искате да оцените изцяло колко полезен и мощен инструмент е Git. От друга страна обаче стоят опасенията, че тази информация може да е смущаваща и ненужно сложна за начинаещите. По тази причина решихме, че е добре главата да е последна в книгата и оставяме на читателя да прецени кога да я прочете.
След като сме стигнали дотук, нека започнем. Първо, да припомним отново, че Git фундаментално представлява вид файлова система, позволяваща адресиране на съдържание, с VCS интерфейс написан върху нея. Ще научим повече за това след малко.
В ранните версии на Git (преди версия 1.5), потребителският интерфейс беше значително по-сложен, понеже ударението беше върху функционалностите на файловата система, вместо върху една по-полиранa VCS. В последните няколко години потребителският интерфейс претърпя значителни подобрения, сега е много изчистен и лесен за ползване, въпреки че старите стереотипни схващания за ранните трудни и сложни за овладяване UI версии, все още витаят наоколо.
Content-addressable filesystem слоят на Git е изключително впечатляващ аспект от системата, така че ще започнем с него, а след това ще разгледаме транспортните механизми и възможностите за поддръжка на хранилищата, с които евентуално бихте имали нужда да работите.
На този етап вече знаете доста подробности за това какво прави Git на заден план и също така, до известна степен — как е имплементирано това. Разгледахме множество plumbing команди — команди от по-ниско ниво и по-прости от porcelain командите, които ползвахме до момента. Разбирането на това как работи Git вътрешно ще ви помогне да разберете по-добре защо системата прави нещата точно по даден начин, а също и ще ви помогне да напишете по-лесно собствени инструменти и помощни скриптове съобразени със спецификата на вашия работен процес.
Като content-addressable файлова система Git е много мощен инструмент, който можете да използвате за повече задачи освен за контрол на версиите. Надяваме се, вече можете да използвате новите си знания за Git за да имплементирате собствени разработки базирани на технологията и улесняващи работата на вас и вашия екип.