Vous avez un repo local et un remote. Une branche a été créée sur le remote, et vous voulez la récupérer en local :
git checkout --track nom_du_remote/nom_de_la_branche |
Par exemple :
git checkout --track origin/dev |
Ce qui va avoir pour effet de créer une branche “dev” sur votre repo local, de vous switcher dessus, et la lier à la branche “dev” du remote “origin”.
Comme d’hab, assurez-vous que votre copie de travail est bien propre avant sinon ça va merder au moment de changer de branche.
Ouais, ouais, je sais, checkout
est la commande fourre-tout de git qui fait absolument n’importe quoi. C’est relou.
Actuellement nous travaillons à deux sur un gros projet de logiciel de conception de parapentes, nous avons opté pour git et Eclipse.
Une horreur.
Pour arriver à ce que je voulais, j’ai tenté des pull, push, checkout, commit, merge, reset, rebase dans tous les sens, en ligen de commande ou avec l’interface Eclipse/git très complète, mais totalement incompréhensible…Bref, je n’ai toujours pas compris la philosophie de git jusqu’à la révélation : Github une interface à git lumineuse, simple, efficace.
C’est tout.
Merci à Sam & Max pour leur ton fantaisiste, décalé, joyeux ou ronchon, mais rafraichissant.
Que ceux qui n’aiment pas la rubrique “cul” évitent d’y laisser traîner leur souris.
Si la branche n’existe que sur un seul remote, l’option –track n’est pas obligatoire : la branche locale ainsi créée suivra cette branche distante.
Ceci dit c’est le comportement que j’ai, peut-être que c’est lié à ma configuration de Gît, je n’ai pas vérifié.
Perso je fais juste
git checkout nom_de_la_branche
et ça va automatiquement tracker nom_du_remote/nom_de_la_branche (du moment que j'ai qu'un seul remote). Pas la peine de se compliquer la vie. Du moins, ça marche avec Git 2.
La plupart des distribs linux ont la 1.9 dans leur dépôt mais la 2 améliore pas mal l’ergonomie pour pas mal de choses comme ça (le git add fait les rm également), donc ceux qui peuvent, passez à la 2.