J'utilise la commande suivante pour savoir si une local branche git avec branch-name
existe dans mon dépôt. Est-ce correct ? Existe-t-il un meilleur moyen ?
Veuillez noter que je fais cela à l'intérieur d'un script. Pour cette raison, j'aimerais utiliser les commandes de plomberie si possible.
git show-ref --verify --quiet refs/heads/<branch-name>
# $? == 0 means local branch with <branch-name> exists.
0 votes
Votre commande ressemble à celle que j'avais utilisée.
7 votes
Dans mon ignorance, je serais parti avec
git branch | grep -w <branch-name>
. Ok, c'est une commande de porcelaine, mais je ne peux pas imaginer que cette utilisation particulière soit modifiée de manière significative dans le futur au point de rendre ce snippet inutilisable...0 votes
@UncleZeiv : Vous avez probablement raison de dire que la commande ne changerait pas de manière significative pour la rendre inutilisable. Je suis un peu obsédé par ce genre de choses, comme la porcelaine par rapport à la plomberie, c'est tout.
12 votes
git rev-parse --verify <branch_name>
vérifie également d'autres références telles que les balises et les hachages de commit, donc bien qu'elle puisse être plus adaptée à ce dont vous avez besoin, elle retournera des faux positifs si vous n'êtes intéressé précisément que par les branches.0 votes
Une chose très mineure, mais dans le Mise à jour la section, il devrait être
git rev-parse --verify <branch-name>
(c'est-à-direbranch-name
au lieu debranch_name
) ?2 votes
Seul le git show-ref fonctionne pour déterminer si une branche LOCAL est présente. Dans la mise à jour (syntaxe avec git rev-parse), le code de retour est également 0 si une branche distante correspond.
0 votes
Un exemple où la plomberie ou la combinaison porcelaine/code de sortie fonctionne mieux que
git branch
est dans un sh script :if git show-ref --verify --quiet refs/heads/main; then DEFAULT_BRANCH=main