Quand est le bon moment pour supprimer une branche git?
Je n'ai pas envie de finir avec 82 branches traîner, alors je me demandais ce que les inconvénients potentiels sont à la simple suppression de la branche, dès que j'ai le fusionner à maîtriser.
Flux de travail:
git co -b feat-xyz
hack hack
git ci
hack some more
git ci
git co master
git merge feat-xyz
smoke test
git br -d feat-xyz
Toutes les questions ici?
- Je dirais pas de problèmes, parce que si vous avez vraiment besoin, vous pouvez toujours les ressusciter le supprimé branche plus tard.
- Autant que je sache, une suppression de la branche ne peut pas être ressuscité. Toutefois, si la branche a été entièrement fusionnés en maître avant de le supprimer, il ne devrait pas y avoir besoin de la direction de la plus longtemps.
- Oui, vous pouvez. Git ne supprime jamais s'engage donc quand vous supprimez votre branche vous êtes tout simplement la suppression de son nom. Ressusciter un supprimée direction générale, vous avez juste besoin de se rappeler la dernière chose que vous avez commis à cette branche et que vous pouvez rechercher
git reflog
pour elle. Ensuite récupérer le hash - qui n'est vrai que si la direction a finalement été fusionnés. si les commits sont laissés pour compte, ils finiront par devenir inaccessible et sera soumis à la collecte des déchets après un certain laps de temps. même les entrées dans le reflog finira par être purgé, vous avez environ 90 jours par défaut.
- Aucune référence pour qui?
- voir ici: git-scm.com/docs/git-gc le premier paragraphe de la section de Configuration des notes comment reflog entrées expirent après (par défaut) de 90 jours, ce qui est évidemment configurable. notez également dans la Description de l'article, il mentionne que
git
sera coupez les commits qui sont inaccessible, mais au plus tôt 2 semaines. si vous créez une branche, effectuer quelques révisions, puis supprimer la branche et de ne jamais fusionner ou de faire autre chose avec elle, ceux qui s'engage sera inaccessible et, finalement, de ces ordures.
Vous devez vous connecter pour publier un commentaire.
Supprimer après la fusion est la manière habituelle. C'est pourquoi
git branch -d
vérifications pour s'assurer que la direction est complètement fusionné avant de supprimer.Il y a peu de raisons pour que je pense à garder une branche autour de vous: vous pourriez vouloir le retenir dans le cas où vous avez des punaises de revenir une fois qu'il frappe de la production, ou vous voudrez peut-être un record historique.
Dans les deux cas, vous avez l'option de marquage de la tête de la branche avant de le supprimer. Un tag, c'est comme une branche en ce qu'il est un pointeur vers un commit, à l'exception de quelques différences mineures: 1) la porcelaine n'a généralement pas d'affichage des balises dans exploratoire des commandes comme git show-branche ou de l'onglet-automatique dans la caisse, 2) la vérification de un vous met dans une maison individuelle (non-ref) CHEF 3), vous pouvez laisser une "marquage message", ce qui provoque la balise d'être enregistré comme un objet dans le magasin d'objets comme un commit.
De cette façon, vous préserver de l'histoire, et si jamais vous avez besoin de correction de bug, je recommande simplement la création d'une nouvelle branche de maître pour la correction.
Je supprimer après la fusion, mais je fais toujours un
git merge --no-ff
, afin d'éviter le transfert rapide de sorte que l'histoire de la branche est visible sur le graphique. J'aime avoir l'histoire de l'endroit où la branche s'écarte de la direction du développement et où il rejoint dos:Ceci est pris à partir de Un succès Git ramification modèle par Vincent Driessen, un très bon flux de travail à utiliser avec git que j'applique pour la plupart de mes projets.
merge --no-ff
retour sur master parce que, comme vous le dites, vous pouvez voir l'histoire.Je pense à deux raisons pour lesquelles vous voudrez peut-être garder une branche autour pour un peu:
Dans la pratique, la plupart du temps la suppression d'après la fusion est tout simplement parfait.
Flux de travail typique sera
je pense que c'est le flux de travail typique (suppression d'après la fusion)
MODIFIER
Donc, plutôt que de fusionner, au moins pour une courte durée en branches, je pense que l'idée est de rebase sur le maître. puis vous vous retrouvez avec une variation linéaire de l'histoire, et l'ensemble de la branche devient une partie du tronc principal. dans ce cas, vous disposez de tous les changements, il n'y donc, de toute évidence, vous n'avez pas besoin d'une copie.