Comment cloner toutes les branches de Git?

J'ai un master et un development de la branche, à la fois poussé à GitHub. J'ai cloned, pulled, et fetched, mais je reste incapable d'obtenir autre chose que la master branche.

Je suis sûr que je suis absent quelque chose d'évident, mais j'ai lu le manuel et je me fais pas de joie à tous.

  • La accepté de répondre ici (git branch -a) vous montre les branches dans la distance, mais si vous essayez de vérifier un de ces, vous serez dans un " détaché de la TÊTE de l'état. La réponse suivante vers le bas (deuxième plus upvotes) les réponses à une autre question (pour l'esprit: comment tirer toutes les branches, et, encore une fois, cela ne fonctionne que pour ceux que vous effectuez le suivi localement). Plusieurs commentaires souligner que vous avez pu analyser la git branch -a résultats avec un script shell qui serait localement à suivre toutes les branches distantes. Résumé: Il n'y a pas de git natif de chemin à faire ce que vous voulez et il pourrait ne pas être une grande idée de toute façon.
  • Peut-être juste de copier l'intégralité du dossier à l'ancienne? scp [email protected]:/home/some_user/project_folder ~ Ne sais pas si cette solution fonctionne pour github si..
  • Plutôt que de dire "j'ai cloné, tiré, et les cheveux," beaucoup mieux pour nous montrer les commandes exécutées.
  • Ici Git 1.8.3.2, le checkouted branche ne pas être " détaché de la TÊTE de l'état, mais la checkouted tag sera.
  • Vous serez en mesure à la caisse toutes les branches (en chemin différent) après le clonage d'une opération de pension avec la nouvelle git checkout --to=<path> commande à venir dans Git 2.5+ (Q2 2015): qui aurait l'appui de plusieurs direction de la caisse. Voir stackoverflow.com/a/30185564/6309.
  • Elle toujours me croit rêver pourquoi "clone" n'est pas dans le sens d'une copie exacte. Si c'est un clone exact, ne devrait pas toutes les branches de la partie du dépôt local? Je veux dire n'est-ce pas l'un des point d'être distribués? Alors, quand quelque chose référentiel est parti, vous avez toujours une copie complète de tout. Ou est-ce le soi-disant "à distance" sont vraiment une partie du référentiel local déjà?
  • Voir toutes les upvotes, les réponses, les commentaires sur les réponses et le nombre sidérant de points de vue, je pense qu'il est temps git ajout d'une commande pour le faire. Et vous avez raison @huggie, mes pensées exactement.
  • est-il moins les données envoyées sur le fil pour seulement une branche spécifique? Si vous êtes le clonage le noyau Linux ou quelque autre bête, c'est peut-être préférable par défaut (si je suis d'accord que si vous le voulez tous, qui devrait être facile aussi)
  • stackoverflow.com/a/7216269/480982 devrait être la accepté de répondre à
  • Maintenant qu'il a été un moment depuis que j'ai appris plus sur git, j'ai réalisé ma confusion découle du nom de "branches distantes" et "suivi à distance des branches." Git stocke des trucs dans un arbre. Branches (que ce soit à distance, suivi à distance ou local) sont des "étiquettes" de l'arbre. Lors du clonage, tout dans l'arbre n'est cloné. Et chaque origin/XXXX (branches distantes) sont étiquetés. (Ils sont vraiment local les étiquettes que vous gardez). Un maître de la branche est généralement fait pour être une "distance de suivi de branche" (Remarquez le tableau de bord j'ai ajouté afin de préciser.) Mais vous pouvez créer d'autres sections locales qui portent la capacité de suivi.
  • Ainsi, les branches sont des étiquettes. Il y a vraiment tous les locaux pour vous. Une "distance" (origine/XXX) est un label local pour correspondre à la distance (comme les dernières que vous avez connu depuis le dernier fetch). Une "section locale" est un label local. Et une branche locale peut avoir la possibilité de "suivre" et devient une "distance de suivi" de la branche. La capacité de suivre vraiment simplement vous sauver un peu de touche de clavier, pas besoin de spécifier quelle distance vous êtes en tirant ou en poussant. C'est tout. Pas plus, pas moins. Et lorsque vous clonez, arbre n'est cloné, et le local origin/xxx sont étiquetés.