Pour récupérer une branche depuis un dépôt Git distant et commencer à travailler dessus localement, ouvrez Terminal dans votre dépôt, effectuez un fetch depuis le bon dépôt distant, puis créez une branche locale qui suit la branche distante. Par exemple, git fetch origin suivi de git switch --track origin/feature/login crée et bascule sur une branche locale feature/login liée à origin/feature/login.

Ouvrir Terminal dans le dépôt

Ouvrez Terminal et déplacez-vous dans le dossier contenant votre dépôt Git. Dans Terminal sous macOS, le shell par défaut est zsh, bien que votre configuration puisse utiliser un autre shell. Les commandes Git ci-dessous fonctionnent dans les deux cas ; les noms de branches contenant des métacaractères du shell doivent être placés entre guillemets pour que le shell ne les interprète pas. Guide d'utilisation de Terminal d'Apple

Si le dépôt est déjà ouvert dans un éditeur de code, utilisez son terminal intégré s'il est disponible. Sinon, dans Terminal, tapez cd , faites glisser le dossier du dépôt depuis le Finder dans la fenêtre de Terminal pour insérer son chemin, puis appuyez sur Retour. Vérifiez que vous êtes dans le bon dépôt et examinez les éventuelles modifications locales avant de changer de branche :

git status --short
git remote -v

git remote -v liste les noms et URL des dépôts distants configurés. Les commandes ci-dessous utilisent origin, un nom distant courant ; remplacez-le par le nom réel affiché sur votre Mac. Si aucun dépôt distant n'est listé, ce dépôt n'a actuellement aucun dépôt distant configuré à partir duquel récupérer des données.

Récupérer la branche distante

Exécutez :

git fetch origin

L'opération de fetch télécharge les commits et les références depuis le dépôt distant et met à jour les références de suivi à distance locales en fonction de la configuration de fetch du dépôt. Elle ne bascule pas en elle-même votre répertoire de travail sur la branche. Dans la configuration habituelle, les branches récupérées depuis origin apparaissent sous des noms tels que origin/feature/login. La documentation de Git indique que fetch met à jour les branches de suivi distant, la correspondance exacte étant contrôlée par le refspec de fetch du distant. Documentation de Git sur fetch

Vous pouvez confirmer que la branche est visible localement avec :

git branch --remotes

Recherchez origin/feature/login dans la sortie. Si elle est absente, vérifiez que le nom de la branche et le distant sont corrects, que vous avez accès au distant et que la configuration de fetch du distant inclut cette branche. Un fetch réussi peut tout de même ne pas afficher toutes les branches du serveur si le dépôt utilise un refspec restreint.

Créer et basculer sur la branche de suivi locale

Lorsque la branche de suivi distant est présente et que vous souhaitez que la branche locale utilise le même nom, exécutez :

git switch --track origin/feature/login

Git crée une branche locale feature/login, définit son amont sur origin/feature/login et y bascule votre arbre de travail. La relation de suivi permet à des commandes telles que git status d'indiquer comment la branche locale se situe par rapport à son amont, et fournit à Git un amont par défaut pour des opérations telles que git pull. L'option --track définit cet amont ; sous cette forme, Git déduit le nom local à partir de la branche de suivi distant. Documentation de Git sur switch

Si vous souhaitez un nom de branche locale différent, spécifiez-le explicitement :

git switch --track --create login-work origin/feature/login

Cela crée la branche locale login-work qui suit origin/feature/login. Dans les versions de Git qui prennent en charge la commande plus récente switch, --create est la forme longue de -c. Vérifiez la version installée avec git --version si Git indique que switch est inconnue ; git switch a été introduite dans Git 2.23. Dans ce cas, utilisez l'équivalent plus ancien :

git checkout --track -b login-work origin/feature/login

Vérifier la branche et gérer les erreurs courantes

Après avoir basculé, confirmez la branche active et l'état du suivi :

git status -sb
git branch -vv

La sortie du statut doit identifier la branche locale et son amont. Dans la liste des branches, login-work doit afficher origin/feature/login comme branche suivie.

Si Git indique que la branche est ambiguë, utilisez la forme complète remote/branch montrée ci-dessus plutôt que de vous fier à la détection automatique. Le raccourci de Git git switch feature/login peut créer automatiquement une branche de suivi lorsqu'un seul distant possède une branche correspondante, mais une ambiguïté peut survenir lorsque plusieurs distants portent ce nom. Documentation de Git sur switch

Si le basculement est refusé parce que des modifications locales seraient écrasées, arrêtez-vous et examinez git status avant de continuer. Committez ou remisez (stash) en toute sécurité le travail que vous souhaitez conserver ; ne forcez pas le basculement et n'abandonnez pas les modifications à moins de comprendre ce qui sera perdu. Si le nom de branche locale existe déjà, choisissez délibérément cette branche ou sélectionnez un nom local différent avec --create ; ne présumez pas qu'une branche existante suit déjà le distant souhaité.

Le processus est terminé lorsque la branche locale souhaitée est extraite (checked out) et que son amont pointe vers la branche distante voulue. Le fetch actualise les informations de votre dépôt local sur le distant ; la création de la branche de suivi vous offre un espace de travail local tout en préservant cette connexion.

Sources