La raison la plus importante de faire des commits fréquents, petits et significatifs est de faciliter la compréhension de l'historique du code. En particulier, il est très difficile de comprendre comment le code a changé s’il est difficile de générer des différences compréhensibles.
L'option 1 masque l'historique des modifications que vous avez apportées, mais sinon, cela ne posera aucun problème.
L’option 2 masque l’historique des modifications que vous avez apportées, peut-être un peu moins que l’option 1, mais peut poser d’autres problèmes pour vous-même ou d’autres personnes si elles supposent ou concluent autrement que les commits sont distincts, par exemple, ils peuvent être fusionnés indépendamment dans d’autres branches. À moins qu'il existe une raison pratique forte de préférer cette option à l'option 1, cette solution est moins idéale que cela.
L'option 3 est préférable, toutes choses étant égales par ailleurs, mais si, comme vous l'avez décrit ailleurs, cela nécessiterait des délais "extrêmes" ou entraînerait d'autres coûts importants, vous devrez les comparer aux avantages escomptés de créer des commets plus propres.
En fonction des informations que vous avez fournies, je choisirais l'option 1. Peut-être devriez-vous configurer des rappels vous invitant à valider vos modifications?
Prototypage et réécriture
Une autre considération à garder à l’esprit, en particulier à la lumière de votre note sur le fait qu’il est le seul programmeur, et de mon soupçon selon lequel vous travaillez sur une base de code relativement nouvelle, est qu’il est probablement bon de développer des habitudes différentes en ce qui concerne les changements à apporter. prototypez le nouveau code par rapport au maintien ou à l'extension du code existant. Il n'y a probablement pas de division très nette entre les deux, mais je pense que c'est toujours une distinction utile.
Lorsque vous prototypez un nouveau code, validez chaque fois que vous souhaitez enregistrer vos modifications, presque certainement dans une branche, mais peut-être dans un projet séparé. Ou peut-être même juste en dehors du contrôle de version. Vous pouvez plutôt vous concentrer sur la collecte de preuves sur la faisabilité de diverses hypothèses ou conceptions que vous envisagez. J'écris souvent de petits prototypes en utilisant différents outils, par exemple LINQPad au lieu de Visual Studio pour le code C #.
Une fois que vous avez validé une conception ou une hypothèse particulière, réécrivez-la dans votre projet principal, idéalement dans une branche, et effectuez les petits engagements significatifs qui aideront le mieux à comprendre les autres (y compris votre avenir) quant à la nature des changements. vous faites.