Deux idées qui changent tout
Un commit est une photo complète (snapshot) du projet, pas une liste de modifications. Git range chaque fichier une seule fois, et un commit ne fait que pointer vers les bonnes versions.
commit 1 commit 2 commit 3
README v1 README v1 README v2
crepes v1 crepes v2 crepes v2
tarte v1
Git est distribué : votre dossier contient tout l'historique, pas une copie de travail reliée à un serveur. GitHub n'est qu'un clone parmi d'autres, que l'on a choisi comme point de rendez-vous.
En clair : sans réseau, tout marche ; et push n'est qu'une synchronisation.