Je bent misschien meteen doorgegaan naar dit hoofdstuk vanuit een eerder hoofdstuk, of je bent misschien hier beland nadat je de rest van het boek gelezen hebt - hoe dan ook, dit is waar we werking onder de motorkap en de implemantatie van Git gaan behandelen. We zijn van mening dat het leren van deze informatie fundamenteel belangrijk was om te begrijpen hoe nuttig en krachtig Git is, maar anderen hebben ons duidelijk gemaakt dat het juist verwarrend kan zijn en onnodig complex voor beginners. Daarom hebben we deze behandeling als laatste hoofdstuk in het boek opgenomen zodat je het vroeg of laat in je leerproces kunt gaan lezen. We laten deze beslissing geheel aan jou over.
Maar nu je hier toch bent, laten we beginnen. Ten eerste, als het nog niet duidelijk mocht zijn, Git is in wezen een op inhoud-adresseerbaar bestandssysteem met een VCS (versiebeheer) gebruikers interface erbovenop geschreven. Je zult straks meer lezen over de betekenis hiervan.
In de begindagen van Git (vooral voor 1.5), was de gebruikers interface veel complexer omdat de nadruk lag op dit bestandssysteem en veel minder op een strak versiebeheer systeem. In de laatste paar jaren is de gebruikersinterface bijgeslepen totdat het net zo gemakkelijk te gebruiken was als ieder ander systeem; maar vaak hangt het stereotype nog rond van de vroege Git interface die zo complex was en moeilijk te leren.
Het op inhoud-adresseerbare bestandssysteemlaag is ongelofelijk gaaf, dus we zullen die eerst in dit hoofdstuk behandelen; daarna zullen je vertellen over de transport mechanismen en het taken voor onderhoud van de repository waar je op den duur mee te maken kunt krijgen.
Je zou nu een redelijk goed begrip moeten hebben wat Git in de achtergrond uitvoert en, tot op zekere hoogte, hoe het is geïmplementeerd. Dit hoofdstuk heeft een aantal binnenwerk (plumbing) commando’s - commando’s die een niveau lager en simpeler zijn dan de deftige (porcelain) commando’s waarover je in de rest van het boek gelezen hebt. Het begrip over hoe Git op een dieper niveau werkt zou het makkelijker moeten maken om te begrijpen waarom het doet wat het doet en helpen bij het schrijven van je eigen gereedschappen en scripts om jouw specifieke werkwijze te ondersteunen.
Git als een op inhoud-adresseerbaar bestandssysteem is een zeer krachtig gereedschap die je eenvoudig kunt gebruiken voor meer dan alleen een versiebeheersysteem. We hopen dat je je pasverworven kennis over het binnenwerk van Git kunt gebruiken om je eigen gave toepassing van deze technologie te implementeren en je meer op je gemak te voelen bij het gebruik van Git op meer geavanceerde manieren.