Je n'ai pas d'expérience avec Git mais je fais de mon mieux pour m'y habituer, et jusqu'à présent je ne l'utilise que pour des projets sur lesquels je travaille seul.
Quand je code, il y a naturellement une approche descendante (car je ne peux pas connaître l'avenir), et il y a un thème récurrent:
Je fais du travail.
Je découvre que pour obtenir mon travail dans quelque chose de «commitable», je dois faire un autre travail.
L'autre travail mérite son propre engagement.
Par quelque chose d'engagement, je veux dire quelque chose qui se compile ou quelque chose qui n'est pas un gâchis total.
Et par quelque chose qui mérite son propre commit, je fais référence au fait que j'ai appris que les commits ne devraient faire qu'une seule chose.
La façon dont je le résous est lourde. Si l'autre travail se trouve dans un autre fichier, je crée une nouvelle branche, je m'y engage et je fusionne. Si le travail est dans le même fichier .. ugh .. Je fais une copie locale et réinitialise le fichier à son état dans HEAD, effectue la validation nécessaire et commence à restaurer mon travail à partir de la copie. Comment dois-je réellement gérer cela? Je n'imagine pas que c'est ainsi, n'est-ce pas? Je ne le suppose pas, car cela doit venir un peu souvent à tout le monde (qui ne connaît pas aussi l'avenir, au moins). Ou peut-être que mon flux de travail est susceptible d'être défectueux?
git add -p
, puis valider uniquement ces parties. C'est une technique très puissante et je l'utilise presque tout le temps.
git status
pour voir tous les fichiers modifiés et effectuer deux ou plusieurs validations en utilisantgit add
des fichiers spécifiques (au lieu degit add --all
) et en validant pièce par pièce.