Git, bir klasörün geçmişini tutar. Her commit, dosyaların o andaki hâlinin bir fotoğrafıdır ve bir mesaj taşır: ne değişti, neden. İstediğin fotoğrafa dönebilir, ikisini karşılaştırabilirsin. git init bir klasörü depoya çevirir.
git initgit statusgit add notes.mdgit commit -m "Add meeting notes"git log --oneline
git add değişikliği sahneye koyar: "bir sonraki fotoğrafa bu girecek". git commit sahnedekilerin fotoğrafını çeker. git status neyin değiştiğini, neyin sahnede olduğunu söyler; git log geçmişi gösterir.Sahnenin var olma sebebi seçmektir. İki dosyayı değiştirdiysen ama yalnızca biri hazırsa yalnızca onu add edersin; diğeri bir sonraki commit'i bekler. İyi bir commit tek bir işi anlatır. Her commit'in kısa bir kimliği vardır (a1b2c3d gibi); geçmişte ona bu kimlikle işaret edilir.