89 votes

Pourquoi Git utilise le colon (: <branch> ) pour supprimer une branche distante

Je réfléchis à la raison pour laquelle la commande Git utilise

git push <remote> :<branch> aimez git push origin :featureA pour supprimer la branche featureA du serveur distant. Je suis intéressé par la raison pour laquelle le colon est utilisé comme indicateur de suppression. C'est tellement différent de

git branch -d <localbranch>

Pourquoi ne fais pas quelque chose comme

git branch -d --remote origin <branchname>

ou y a-t-il une signification profonde du symbole du côlon que je ne connais jamais auparavant?

98voto

manojlds Points 96599

Ce n'est pas le sens de l' : en soi, mais ce qui est présent, ou plutôt absent avant.

Le format est refspec

<+><source>:<destination>

(facultatif + pour les non-avance rapide)

Donc, quand vous faites quelque chose comme git push origin :featureA, vous spécifiez un vide de la source de ref et fondamentalement faire de la destination "vide" ou de les supprimer.

PS: Notez que la refspec d' : ou rien ne signifie pas pousser rien à rien. Il fait git push "matching" des branches: pour chaque branche qui existe sur le côté local, le côté distant est mis à jour si une branche du même nom existe déjà sur le côté éloigné.

27voto

Ryan Stewart Points 46960

Le colon n'est pas un "indicateur de suppression". Notez que la commande git push et git pull à la fois accepter de zéro ou plus refspecs que leur argument final(s). Maintenant lisez à propos de refspecs. Une virgule sépare la source, de la destination dans un refspec. La commande git push origin :foo a un vide à la source et essentiellement dit "push rien à direction de foo d'origine", ou, en d'autres termes, "faire succursale de foo sur l'origine existait pas".

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