J'ai un référentiel sur github avec une branche principale (master) et une branche pour quelques travaux expérimentaux. J'ai fait quelques commits et poussé vers la branche expérimentale et tout allait bien.
Maintenant, sur une machine différente, j'essaye de cloner mon dépôt (git clone repository ) puis de passer à la branche expérimentale (git checkout branchname ) mais à chaque fois que je fais cela, ma tête se détache et je ne peux pas pousser mes changements. Qu'est-ce que je fais mal? J'ai l'impression qu'il me manque un concept git fondamental quelque part, mais la lecture de pages de manuel git aléatoires ne me donne aucun indice.
Je suis nouveau dans git donc je suis désolé si je suis un idiot mais je ne trouve rien dans la documentation qui m'aidera à rattacher ma tête.
ÉDITER
Le concept d'une branche de suivi est ce qui me manquait. Maintenant que je connais ce concept, tout est clair. Personnellement, je trouve la git branch --track
syntaxe beaucoup plus intuitive quegit checkout -b branch-name origin/branch-name
.
Merci pour l'aide!
la source
git switch
: voir ma réponse ci-dessous .Réponses:
Pour plus de commodité, vous pouvez utiliser la même chaîne pour le nom local et le nom de la branche.
Lorsque vous avez vérifié,
origin/branchname
vous ne retiriez pas vraiment une branche.origin/branchname
est un nom "distant", et vous pouvez en obtenir une liste avecSi vous avez activé les couleurs, les branches locales seront d'une couleur et distantes une autre.
Vous devez d'abord faire un suivi local d'une branche distante afin de pouvoir y basculer et y travailler.
la source
git config --global --add color.ui true
Créez maintenant une branche de suivi:
Ensuite, après y avoir travaillé, appuyez simplement sur github en
la source
Pour développer la réponse de Kent, après avoir fait votre clonage, la seule branche que vous aurez (les télécommandes ne comptent pas) est celle qui était active dans le référentiel à partir duquel vous avez cloné - master dans votre cas.
Donc, vous voudrez d'abord créer une nouvelle branche pour suivre la branche expérimentale distante:
puis vérifiez-le:
Cependant, Kent a raison - ces deux commandes peuvent être combinées
la source
Avec Git 2.23 (août 2019), vous utiliseriez le
git switch
commandeSi vous avez une branche distante du même nom, elle sera automatiquement suivie:
la source