Si vous faites git branch -d branchname
, il supprimera le nom de la branche s'il fait référence à une validation antérieure dans votre historique, ou vous indiquera que vous devez utiliser -D
sinon. Je crée souvent des branches qui sont ensuite poussées à maîtriser, et peuvent donc être supprimées par ce critère. Existe-t-il un moyen facile de lister toutes les branches qui pointent vers des validations antérieures de master, c'est-à-dire des branches qui ne dérangeront pas git avec juste l'option -d
? Des points bonus si cela fonctionne pour toutes les branches à la fois, pas seulement pour le master. J'ai 82 succursales locales et je sais qu'un certain nombre d'entre elles, sinon la plupart d'entre elles, peuvent être supprimées en toute sécurité, mais je ne veux pas prendre le temps de passer par chacune d'entre elles pour essayer de le faire. .Liste des branches git qui peuvent être supprimées en toute sécurité
Répondre
Essayez:
$ git checkout master # or whatever branch you might compare against ...
$ git branch --no-merged
$ git branch --merged
Avec --merged, seules les branches fusionnées dans COMMIT nommées (par exemple les branches dont la pointe commits sont accessibles à partir du commit nom) sera listé. Avec --no-fusionné, seules les branches non fusionnées dans le commit nommé seront listées. Si l'argument est manquant, il vaut par défaut HEAD (c'est-à-dire l'extrémité de la branche actuelle).
EDIT:
pour montrer cela pour toutes les branches, vous pourriez faire quelque chose comme ceci:
exemple repo:
o <--- experimental
|
o
|
o <--- next
|
o
|
o <--- master
|
o----o <--- broken
|
o
|
$ for branch in `git branch --no-color --verbose | \
sed -e 's/*//' | awk '{print $1}'`; \
do echo "[$branch]"; git checkout -q $branch; git branch --merged; done
[broken]
* broken
[master]
* master
[next]
master
* next
[experimental]
master
next
* experimental
git show-branch
est un peu connu mais très utile outil qui affiche visuellement les commits qui sont uniques à chaque branche. Il peut être difficile à déchiffrer au début, mais une fois que vous comprenez la sortie, c'est plutôt utilisable. Il y a un bref mais bon introduction disponible.
DESCRIPTION
Shows the commit ancestry graph starting from the commits named with <rev>s or <globs>s (or all refs under refs/heads and/or refs/tags) semi-visually. It cannot show more than 29 branches and commits at a time.
- 1. comment identifier les branches qui doivent être fusionnées dans git
- 2. Les plistes peuvent-ils être lus en toute sécurité à partir d'une source non fiable?
- 3. liste des opérateurs ruby qui peuvent être remplacés/implémentés
- 4. Fusionner des branches avec Git
- 5. Commander/Liste des branches à distance dans git-python
- 6. Peut-Parallel.ForEach être utilisé en toute sécurité avec CloudTableQuery
- 7. git enregistrer des instantanés avec des branches
- 8. Pousser et tirer des branches dans Git
- 9. Liste des branches à distance à Mercurial
- 10. Git pour les branches locales
- 11. Garder les branches en phase avec Git
- 12. Script Bash pour créer des liens symboliques en toute sécurité?
- 13. Fusion de plusieurs branches git en master?
- 14. Itérer en toute sécurité un tableau qui peut être modifié dans un autre thread
- 15. synchronisation git de branches rebasées
- 16. Diviser un référentiel Git en plusieurs branches devient des fourches
- 17. Les protocoles SVN et HTTP peuvent-ils être utilisés en toute sécurité sur le même référentiel simultanément?
- 18. Récupérer en toute sécurité les valeurs d'un élément qui peut contenir des valeurs différentes
- 19. Nettoyage branches Git à distance
- 20. Supprimer des branches qui ne sont pas dans le dépôt local en utilisant git
- 21. Puis-je mapper des branches locales vers des branches distantes avec des préfixes différents dans git?
- 22. Téléchargement d'images en toute sécurité avec PHP
- 23. Soulever un fil d'événement en toute sécurité
- 24. Comment est-ce que je laisse dire à Git de m'avertir à propos des branches distantes éventuellement supprimées?
- 25. git fusion partielle, pas toute la branche
- 26. Les cases à cocher peuvent-elles être supprimées d'un .NET WinForms ListView lors de l'exécution?
- 27. Scientifiques Algorithmes qui peuvent produire des images, pseudocode peut-être?
- 28. Comment demander des données en toute sécurité via Google OAuth?
- 29. LINQ to SQL: propriétés des propriétés qui peuvent être null
- 30. php créer des fichiers qui ne peuvent pas être supprimés
Je suppose que vous avez br comme raccourci à la branche :). Cela fonctionne. Maintenant, comment le faire pour chaque branche, donc je peux obtenir une bonne liste de branches que je peux supprimer. En outre, cela montre les branches à distance, dont je ne veux pas. – asmeurer
Super. Je pensais que cela nécessiterait un script shell. Je ne sais pas sed ou awk cependant, donc je suis content que tu l'aies écrit. Je pense que je vais modifier votre script pour ne pas montrer la branche elle-même sous chaque branche et donner la première ligne du message de validation pour la tête de chaque branche, pour que je puisse voir plus facilement ce que chaque branche pointe. Peut-être que la date de chaque commit aussi. – asmeurer
Cela pourrait être amélioré (utilisez 'branch' au lieu de' br' et 'checkout' au lieu de' co', et faites que le script ne montre pas la même branche que vous êtes), mais il a fait ce que je voulais, donc je vais marquez-le comme la réponse. – asmeurer