12
votes

Git - différence entre le suivi d'une branche par rapport au clonage

J'ai vu cette commande flottant sur différents sites.

git checkout --Track -b <...> code> p>

si je crée un repo nud sur un serveur distant et travaillez à partir de deux emplacements différents, quelle est la manière la plus rapide et "approuvée" de le faire? P>

Ce que j'ai fait était, j'ai créé le repo initial sur mon ordinateur portable puis poussé les modifications à l'origine où mon VPS repo est (le repo à nu). Maintenant, sur mon bureau, devrais-je cloner mon repo? Je demande parce que j'ai deux branches, "dev" et "maître". Une fois que je suis sur mon bureau, je n'étais pas sûr que je devais "suivre" le repo ou dois-je être clonant en premier? Et si je voulais travailler sur la succursale DEV, est-ce que lorsque je commande à l'aide de la directive --Track? P>

Voici ce que j'ai fait jusqu'à présent. p>

sur ordinateur portable p> xxx pré>

sur VPS Repo P>

git clone <..>

git

0 commentaires

3 Réponses :


9
votes

vous clone Un référentiel, mais vous piste une branche. La commande Checkout que vous avez affichée n'est pas complète: xxx

Ainsi, les étapes requises seraient les suivantes:

  1. clonez le référentiel à distance.
  2. suivre les branches distantes.

3 commentaires

Droite, je l'ai supprimé exprès. Donc, si j'ai 2 branches (maître / dev), je dois suivre les deux? Chaque fois que je clonage un repo, je dois suivre les branches. Ensuite, faites mes modifications à mon clone et gitez-la / tirez en conséquence. Oui?


Fondamentalement, oui. Mais vous n'avez pas à suivre explicitement la branche principale.


Pour clarifier le commentaire de Manni, le référentiel définit automatiquement la branche principale pour le suivi lorsqu'il est cloné. (Pour être précis, il met en place la branche initialement céréotée, qui est la tête sur le repo à distance que vous avez cloné, mais c'est généralement maître.)



4
votes

La commande ci-dessus ne fonctionnera pas si vous n'êtes pas dans un référentiel. Travailler avec git, vous devez toujours em> d'abord créer un référentiel, soit en clonant un qui existe déjà ou en utilisant git-init code> et à partir de zéro.

git checkout --track -b <branch> <remote-branch>
git checkout --track <remote-branch>


3 commentaires

Donc sur mon bureau, puis-je courir Git Init. (Ça va être vide) puis exécuter une caisse git? Ou devrais-je être clonant?


Avez-vous déjà le contenu souhaité dans un repo quelque part? Le cloner. Créez-vous pour la première fois? Utilisez git init. Encore une fois, Git-Checkout vérifie simplement (et éventuellement crée) du contenu qui est déjà dans le référentiel.


De toute façon, le point de ma réponse était que git-init et git-clone sont les deux façons de créer un référentiel et de décrire la fonction de git Checkout --Track .



0
votes

Lorsque vous utilisez

git checkout --track -b local_branch_name origin/remote_branch_name


2 commentaires

Cela dit, devrais-je le faire aussi de mon ordinateur portable (où tout a commencé)? Je ne comprends pas quelle est la différence sur mon bureau comme supposé mon ordinateur portable. Sur mon ordinateur portable, j'ai créé le repo local puis l'a poussé à mon repo nu sur un serveur distant. Devez-vous dire que je devrais être "suivi" le repo sur mon ordinateur portable du repo nu?


ERR ... Bien que la documentation GIT utilise "suivi" pour faire référence à deux concepts différents dans sa documentation (succursales à distance et suivi de la branche de suivi de certaines autres succursales), il n'utilise pas ce mot lors de la description des relations entre les référentiels. Un référentiel peut être clone d'un autre référentiel. Vous pouvez aller chercher du référentiel, vous pouvez appuyer sur un référentiel.