Фактическое ядро Git довольно мало.К сожалению, он написан не на языке программирования, который легко понять, и он полон оптимизаций производительности, которые не имеют отношения к реальной операции.
Однако существует несколько альтернативных реализаций Git, в частностибиблиотека Dulwich , написанная на Python.
Также имеется Amp , цель которого - предоставить унифицированные интерфейсы для всех основных распределенных систем управления версиями.На данный момент они реализуют только Mercurial, но Git, Bazaar и Darcs также запланированы.Теперь Mercurial написан на Python и Amp на Ruby, которые одинаково выразительны, так что вы можете подумать, что разница не так уж велика.Однако Amp спроектирован так, что вы, например, используете команды Mercurial в репозитории Git или команды Darcs с семантикой Bazaar в репозитории Mercurial, поэтому между этими слоями существует очень четкое разделение. И Amp разработан таким образом, что даже непрограммисты могут написать свою собственную персонализированную систему контроля версий, используя строительные блоки Amp, поэтому код чрезвычайно прост и понятен.