web-dev-qa-db-fra.com

Comment faire un "git checkout -b <nom de branche>" à partir d'une balise distante

J'essaie de créer une branche à partir d'une balise distante, mais il semble qu'il n'y ait aucun moyen de le faire. Quand j'essaye

git checkout -b test Origin/deploy

où Origin est la télécommande et deploy est la balise que je veux vérifier, mais je reçois

fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'Origin/deploy' which can not be resolved as commit?

UPDATE: Je viens de découvrir que 

git fetch --all -t

ne fonctionnait pas correctement pour moi. Tandis qu'il télécharge toutes les branches, il ne télécharge pas toutes les balises. Ainsi, lorsque j'ai vérifié, le déployer était une ancienne balise. Maintenant j'exécute 

git fetch --all && git fetch -t

Ainsi, lorsque je crée une nouvelle branche basée sur une balise

git checkout -b test deploy

la nouvelle branche est à jour avec le dernier déploiement.

30
Sergi

Je ne suis pas un git guru, mais j'avais déjà utilisé quelque chose comme ça auparavant et cela semblait avoir bien fonctionné:

git pull (or fetch, just need to make sure you are updated)
git checkout -b test remotes/Origin/deploy
23
Skäggiga Mannen

Je ne suis pas sûr que vous puissiez le faire directement. Vous êtes probablement obligé de faire un aller chercher, puis une caisse:

git fetch Origin
git checkout -b test tag-name

En passant, je ne recommanderais pas l’utilisation d’un nom de balise tel que "deploy".

29
Joost Diepenmaat

Vous devez courir

git pull
git checkout -b <new-branch-name> remotes/Origin/<source-branch-name>
4
Nagaraj N Hittalamani

pour lister tous les tags

git fetch
git tags -l 

créer une branche locale qui pointe vers la balise

git checkout tags/<tag_name> -b <branch_name>
git checkout -b <branch_name> tags/<tag_name>
0
Ovi-Wan Kenobi