Supposons que nous ayons une application qui soit stable.
Demain, quelqu'un signalera un gros bogue que nous déciderons de corriger immédiatement. Nous créons donc une branche pour ce correctif à partir de "master", nous la nommons "2011_Hotfix", et nous la poussons vers le haut afin que tous les développeurs puissent collaborer à sa correction.
Nous corrigeons le bogue et fusionnons "2011_Hotfix" dans "master" ainsi que dans la branche de développement actuelle. Et nous poussons "master".
Que faisons-nous de "2011_Hotfix" maintenant ? Devrait-elle rester là comme une branche pour toujours jusqu'à la fin des temps ou devrions-nous la supprimer maintenant, puisqu'elle a rempli son rôle ? Il semble impur de laisser traîner des branches partout, car la liste des branches va probablement devenir très longue, la plupart d'entre elles n'étant même plus nécessaires.
Dans le cas où il serait supprimé, qu'adviendrait-il de son histoire ? Sera-t-il maintenu, même si la branche actuelle n'est plus disponible ? De même, comment supprimer une branche distante ?