یک پیادهسازی کامل Git به زبان پایتون نیز وجود دارد — Dulwich. این پروژه در آدرس https://www.dulwich.io/ میزبانی میشود. هدف آن ارائه یک رابط (interface) برای مخازن Git (هم محلی و هم راهدور) است که مستقیماً Git را فراخوانی نکند و بهجای آن از پایتون خالص استفاده کند. با این حال، Dulwich دارای افزونههای C اختیاری است که عملکرد را بهطور قابلتوجهی بهبود میبخشند.
Dulwich از طراحی Git پیروی میکند و دو سطح پایه API را از هم جدا میکند: plumbing و porcelain.
در اینجا مثالی از استفاده از API سطح پایین برای دسترسی به پیام آخرین commit آمده است:
from dulwich.repo import Repo
r = Repo('.')
r.head()
# '57fbe010446356833a6ad1600059d80b1e731e15'
c = r[r.head()]
c
# <Commit 015fc1267258458901a94d228e39f0a378370466>
c.message
# 'Add note about encoding.\n'برای چاپ لاگ commit با استفاده از API سطح بالای porcelain، میتوان از روش زیر استفاده کرد:
from dulwich import porcelain
porcelain.log('.', max_entries=1)
#commit: 57fbe010446356833a6ad1600059d80b1e731e15
#Author: Jelmer Vernooij <jelmer@jelmer.uk>
#Date: Sat Apr 29 2017 23:57:34 +0000مستندات API، آموزشها و بسیاری از مثالهای انجام کارهای مشخص با Dulwich در وبسایت رسمی آن در دسترس است: https://www.dulwich.io.