La ligne directrice pour le Git du projet lui-même (et le projet Linux, autant que je sache) est un commit par "logiquement distinct de l'ensemble de modifications".
Cela est un peu ambigu, mais vous ne voulez probablement pas à commettre tous les quelques jours si vous travaillez sur un projet en permanence, et vous avez probablement ne veulent pas s'engager après chaque modification de la fonction - si vous avez modifié plusieurs fonctions dans plusieurs fichiers différents, vous souhaitez vous engager toutes les fonctionnalités liées ensemble, si vous le pouvez et fournir un message de commit. Tout le code modifié dans chaque commit doit être lié, mais il peut (et devrait) être certainement dans plusieurs fichiers.
Ce que vous voulez probablement à garder à l'esprit est dans des revues de code. Si quelqu'un est en train de décider si elles doivent fusionner votre travail, il est beaucoup plus facile pour eux de traiter le travail présenté si vous avez chaque commit logiquement contenus et séparés les uns des autres. Qui vous permet de vous (ou d'autres) cherry pick travailler efficacement - si vous avez trois s'engage avec une fonction modifiée en chacun, mais ils sont tous couplés en quelque sorte - vous ne pouvez pas appliquer l'un sans l'autre deux sans casser le code de base - elles doivent probablement être écrasé vers le bas à un commit.