2010-10-22 3 views
47

J'ai un référentiel sur Github. Il contient le maître et une branche. Quand je le clone, j'obtiens seulement le maître et je ne vois pas ma branche.
Pourquoi est-ce le cas? Comment puis-je voir toutes les branches dans le référentiel?Après git clone, je ne vois pas ma branche

Répondre

70

Par défaut, git clone ne crée qu'une seule branche: la branche actuellement en cours, généralement master. Cependant, il crée des branches de suivi à distance pour toutes les autres branches de la télécommande. Considérez-les comme des copies locales des branches de la télécommande, qui peuvent être mises à jour en les récupérant. Ce ne sont pas de vraies branches locales, car elles sont uniquement destinées à indiquer où se trouvent les branches de la télécommande, pas à vous de travailler.

Si vous exécutez git branch -a, vous verrez toutes les branches, locales et distantes. Si vous voulez voir seulement les plus éloignés, utilisez git branch -r. Si vous préférez un affichage d'historique visuel, essayez gitk --all (ou gitk --remotes).

Pour créer une branche locale à travailler, utiliser

git branch <branch-name> origin/<branch-name> 

Cela va créer une nouvelle branche locale à l'aide de la branche de la télécommande comme point de départ.

+5

une syntaxe plus courte prise en charge est git branch -t origin/

+1

@adymitruk: Je ne sais pas quand -t a été introduit, mais ce n'est pas dans Git 1.6.3.1 et antérieur. Si -t n'est pas là, les utilisateurs peuvent utiliser --track à la place. – Trott

12

Utilisation:

git branch -r 

Cela vous montrera toutes les branches à distance. Vous pouvez alors faire:

git branch -t my_local_branch origin/remote_branch 
git checkout my_local_branch 

Ensuite, faites votre travail, puis appuyez sur la branche distante.

11

Vous pouvez directement faire:

git checkout <original-remote-branch-name> 

Cela crée automatiquement une branche locale qui suit la branche à distance avec le même nom. Faites-le toujours après le clonage, si vous souhaitez travailler sur une branche particulière autre que le maître. Lorsque vous clonez, le nom distant est par défaut 'origine', ce qui est différent du nom distant utilisé sur les autres machines sur lesquelles vous développez. Ainsi, vous pouvez d'abord nommer votre télécommande avant le clonage ou pousser vers l'origine pour toujours.

Questions connexes