/ / J'ai supprimé une branche dans Remote, comment puis-je synchroniser en local? - git, github-for-windows

J'ai supprimé une branche dans Remote, comment puis-je synchroniser en local? - git, github-for-windows

J'ai créé un référentiel sur Github. J'ai deux environnements de développement et j'accède à Github avec Github pour Windows sur les deux.

Sur l’un des deux environnements de développement, jesupprimé une branche et cliqué sur "synchroniser" dans Github pour Windows. La branche a été supprimée de manière appropriée dans Github. Lorsque je synchronisais depuis mon autre environnement de développement, il y avait une option pour "publier" la branche à supprimer, mais aucune pour la supprimer.

Comment puis-je dire à git ou à Github pour Windows d'effectuer une synchronisation complète, y compris la suppression de branches obsolètes?

Réponses:

2 pour la réponse № 1

Oui et non - en fonction de ce que vous vouliez vraiment dire par "suppression d'une branche locale".

Une réponse rapide

  • Non, il est impossible d’avoir un référentiel distant qui supprime un fichier normal. branchez dans votre référentiel local.

  • Oui, il est possible de demander à Git delete éloigné branches dans votre local référentiel pour les branches qui ont été supprimés sur un particulier nommé à distance (comme "origine").

    Celui-ci est réalisé en exécutant

    git remote prune origin
    

    ou

    git fetch --prune
    

Des explications

S'il vous plaît, comprenez d’abord que le modèle de Git avectravailler avec des référentiels distants est asymétrique: le fait qu'une branche de votre référentiel local porte un nom correspondant exactement à celui d'une branche d'un référentiel distant n'a pas de sens à Git.

La raison est double:

  • Votre dépôt local est traité par Git comme complètement autonome. et ne dépendant d'aucun autre référentiel.
  • Votre référentiel local est capable de communiquer avec un nombre illimité de référentiels distants, et…
  • … Ces dépôts peuvent n'avoir absolument aucunrelation "conceptuelle" avec votre référentiel local: par exemple, il est possible de récupérer les données d’un référentiel hébergeant le code source Linux dans un référentiel contenant votre projet de jouet de week-end.

Donc, alors que Git a certains aides à nouer quelquebranches locales à des branches éloignées particulières, ces liens sont asymétriques. En particulier, Git traite votre histoire locale comme étant "sacrée", et les opérations destructives sur celui-ci nécessitent vos actions explicites.