Je me trouve souvent sur une branche de fonctionnalité, après avoir commis un changement. Puis, je comprendre que je dois faire un changement, donc je:Git: ajout, validation et rebasculement/écrasement dans la même opération
- Faire le changement
- Ajouter toutes les modifications de fichiers à l'index à l'aide
git add -A
- Valider les modifications en utilisant
git commit -m <commit message>
- rebasage la les changements et les deux derniers squashing commits en utilisant
git rebase -i HEAD~2
et squashing le plus récent commettre, de sorte que je me retrouve avec 1 commettre
Ceci est un flux que j'utilise souvent beaucoup, mais il se sent q trop lourd et manuel. Y a-t-il une façon plus intelligente de le faire, ou est-il plus courant de simplement créer des fonctions shell ou des alias pour ce genre de tâche? Je parle les étapes 2 à 4.
N'avez pas essayé, mais peut-être '--amend' et' -all' fonctionnent ensemble, donc vous pouvez omettre le 'git add' s'il ne s'agit que de modifications à des fichiers existants? –
@MatthewStrawbridge Je n'ai jamais entendu parler de ça, mais faire 'git add -A' une fois ne me dérange pas tellement :-) –
Utiliser' --amend' est généralement la bonne réponse. Je trouve utile de noter que cela fonctionne, en substance, en écartant le commit actuel et en substituant le nouveau commit modifié à sa place. Comme vous le constatez, cela "réécrit l'histoire" (prétend que votre commit "modifié" ne s'est jamais produit: * ne regardez pas celui-là, regardez plutôt ce nouveau! *). Mais c'est un cas extrêmement commun: * Travail, travail, travail; tester. Yay, bug corrigé! Commettre! Exécutez la suite de tests complète. Oups, j'ai oublié le cas spécial! Réparer, modifier la validation, relancer la suite de tests complète ... * – torek