Comme nous l'avons mentionné, si vous voulez une "réserve par branche", vous voulez vraiment une nouvelle branche qui se détache de la branche existante.
En outre, outre le fait déjà mentionné que la réserve vous permet d'accéder à une branche sur laquelle vous travaillez, elle vous permet également de interrupteur avant d'avoir tout engagé. Ceci est utile non pas pour le cherry-picking au sens habituel du terme, mais plutôt pour le cherry-picking votre copie de travail .
Par exemple, lorsque je travaille sur une branche de fonctionnalités, je remarque souvent des bogues mineurs ou des impuretés cosmétiques dans le code qui ne sont pas pertinents pour cette branche. Je les corrige tout de suite. Quand vient le moment de livrer, je livre sélectivement les changements pertinents mais pas les corrections et les cosmétiques. Au lieu de cela, je les cache, ce qui me permet de passer à ma branche "minor-fixes-on-stable", où je peux alors appliquer la cache et livrer chaque correction mineure séparément. (En fonction des changements en question, je vais également cacher certains d'entre eux encore une fois, pour passer à une branche de fonctionnalités différente, où j'appliquerai Ceux-ci .)
Cela me permet de me plonger dans le mode de programmation lorsque je travaille, sans me soucier de la bonne tenue de la bibliothèque de mon code. Ensuite, lorsque je fais une pause mentale, je peux revenir en arrière et classer soigneusement mes modifications dans les bonnes étagères.
Si la réserve n'était pas globale, ce type de flux de travail serait beaucoup plus difficile à réaliser.