Si vous débutez avec le contrôle de version, pour un projet d'une seule personne, ne vous inquiétez pas de tous ces flux de travail, etc. D'abord, s'habituer à commettre.
Avez-vous simplement exécuté votre programme et testé quelque chose, et cela a fonctionné? Génial, commettez. Au sujet de faire quelque chose que vous n'êtes pas sûr que cela fonctionnera? Commettre. S'engager tôt et souvent. La bonne chose à propos de git est que les commits sont annulables si vous avez choisi un mauvais endroit pour commettre (indice: s'il ne compile pas, c'est probablement un mauvais endroit - mais il y a des exceptions à cela, une fois que vous êtes satisfait avec git rebase -i
et git add -i
(un peu comme un outil avancé, alors commencez par vous familiariser avec les bases (les parenthèses imbriquées sont amusantes!))). Maintenant, à propos de la commutation focus - git a un certain nombre d'outils utiles pour cela.
Par exemple, si vous voulez corriger un bug, mais un tas d'autres travaux déjà ...
git stash save
Git prend alors toutes les modifications non validées, les enregistre, et revient à la dernière validation. Vous pouvez corriger le bug, test, validation, puis
git stash pop
Toutes ces modifications sont ensuite réappliquées au-dessus du bugfix.
Si vous travaillez sur une petite fonctionnalité, mais réaliser c'est en fait un peu compliqué et vous engager probablement plus d'une fois ...
git checkout -b mynewbranch
Et là, vous allez - vous êtes maintenant sur une nouvelle branche. Vous pouvez revenir à une autre branche à tout moment avec
git checkout someotherbranch
Vous pouvez utiliser ainsi git stash
pour enregistrer les modifications non engagés, puis échanger à une autre branche à faire quelque chose de complètement différent. Et quand vous voulez revenir, git checkout mynewbranch
.
Comme outil un peu plus avancé, si vous avez un petit bugfix à faire, et ne veulent pas se préoccuper de toute chose Stashing, vous pouvez faire
git add -i
# select what changes to include
git commit # commits only what you selected
Ceci est grâce à l'indice git - git add -i
vous permet de sélectionner, au niveau de la ligne individuelle, exactement ce qu'il faut copier de la copie de travail à l'index, puis git commit
l'enregistre en tant que validation. En faisant cela, vous pouvez très rapidement et facilement extraire les corrections mineures à partir d'un tas d'autres changements. Notez, cependant, que cela signifie que vous venez de commettre quelque chose qui n'a jamais été compilé ou testé sous cette forme; il faut donc faire attention de ne pas commettre quelque chose qui est complètement cassé (vous devriez généralement éviter de commettre un code complètement brisé car il casse git bisect
- un outil très pratique pour dépister les régressions). Une fois que vous avez l'habitude de ce flux de base, vous pouvez commencer à ajouter un processus à celui-ci. Par exemple, vous pouvez conserver une branche v1.x
pour les corrections de bugs uniquement dans la série 1.x. Ou peu importe. Utilisez un flux de travail qui fonctionne pour vous.
+1 pour la fréquence de validation. Les engagements sont bon marché; tôt et souvent! – Nic
+1 bonne réponse. Petite correction, cependant. Il devrait être 'git stash save', ou, de manière équivalente,' git stash'. – vhallac
@vhallac, oops - mélangé avec 'pop' :) – bdonlan