77 votes

Git branch suppression

Dans Git, ce qui signifie la "suppression" d'une branche veux dire?

Il sera passé à partir du référentiel? Ou encore navigable via git branch?

Ce que je veux vraiment faire est de marquer une branche "dead end", c'est à dire, la branche est si loin de maître, que personne ne devrait l'utiliser comme un point de départ, mais il y avait quelques bonnes idées à cette branche, alors nous aimerions le garder pour référence.

154voto

Dan Moulding Points 46866

Vous pouvez supprimer la branche, mais le tag de la première, de sorte que c'est de l'histoire ne disparaît pas. De cette façon, la direction générale ne s'affiche pas dans la liste des branches, ce qui devrait dissuader les gens de travail, mais le travail ne sera pas effacé de façon permanente (même après la collecte des ordures est exécutée). Par exemple, chaque fois que j'ai une branche qui est devenu hors de propos, mais je ne suis pas prêt à le supprimer définitivement, je balise comme "archive/<branche-nom>".

Alors que sur master ou autre direction:

git tag archive/foo foo
git branch -D foo

Cela crée une balise nommée archive/foo de la foo de la branche avant de supprimer foo. Vous pouvez également ajouter un message à l'étiquette, qui explique ce qu'est dans la branche, pourquoi il existe, pourquoi c'est maintenant une impasse, etc.

git tag -m 'Foo is deprecated in favor of bar' archive/foo foo

La capacité d'enregistrer pourquoi une branche est déprécié est peut-être un avantage de marquage rapport au déplacement de branches, à un autre espace de noms.

Si jamais vous avez besoin de ressusciter une branche qui a été archivée de cette façon, c'est aussi simple que:

git branch foo archive/foo
git tag -d archive/foo       # Optional

Maintenant, la branche est de retour, comme si il n'a jamais été supprimé.

2voto

Andrew Aylett Points 16469

Branches Git sont stockées comme des références à une révision. Si vous supprimez la direction générale, la référence est supprimée, si rien d'autre références de cette révision, il sera finalement ordures collectées. Aussi, si vous supprimez la branche puis c'est parti (à partir de votre dépôt). Si vous voulez marquer une branche comme obsolète, mais le garder pour une utilisation ultérieure, vous pouvez déplacer la branche d'un répertoire:

$ git branch
* master
  testing_feature_one
  testing_feature_two
$ git branch -m testing_feature_one deprecated/testing_feature_one
$ git branch
  deprecated/testing_feature_one
* master
  testing_feature_two

Sinon, vous pouvez créer un référentiel pour obsolète branches, les tirer à travers les supprimer à partir de l'original. Dans les deux cas, vous allez affecter tous les utilisateurs qui suivent les branches -- le contenu de leur dépôt ne changent pas (ni aucun de leurs noms de branche), mais si ils essaient de tirer à nouveau, ils devront changer leur cible dans leur configuration.

2voto

Stewie Griffin Points 2317

git branch-D branchName sera detele votre succursale de dépôt. Vous ne serez pas en mesure de le voir ou de naviguer plus..Aussi, vous perdrez toutes les modifications de fichier faites dans cette branche.

http://ftp.sunet.se/pub/Linux/kernel.org/software/scm/git/docs/git-branch.html

0voto

Il ne sera pas navigable via git branch et jusqu'à ce que la collecte des ordures est effectué, il ne sera pas perdu à partir du référentiel.

Si vous voulez marquer la branche en question comme un mort de fin puis il suffit de le faire (git ne peut pas le faire pour vous, mais vous pouvez certainement)!

L'étiquetage (comme vous préférez) historique des ouvrages de référence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X