web-dev-qa-db-fra.com

Quelle est la différence entre git clone et checkout?

Quelle est la différence entre git clone et git checkout?

310
Praveen Sripati

La page de manuel relative au paiement: http://git-scm.com/docs/git-checkout

La page de manuel de clone: ​​ http://git-scm.com/docs/git-clone

Pour résumer, clone sert à récupérer les référentiels que vous n'avez pas, à la caisse, vous permet de basculer entre les branches d'un référentiel que vous avez déjà.

Remarque: pour ceux qui ont un arrière-plan SVN/CVS et qui sont nouveaux dans Git, l'équivalent de git clone dans SVN/CVS est checkout. La même formulation de différents termes est souvent source de confusion.

311
August Lilleaas

git clone consiste à récupérer vos référentiels sur le serveur git distant.

git checkout consiste à vérifier l'état de votre référentiel souhaité (sous forme de branches ou de fichiers particuliers).

Par exemple, vous êtes actuellement sur une branche principale et vous souhaitez basculer vers une branche de développement.

git checkout develop_branch

Par exemple, vous voulez passer à un statut particulier d'un fichier particulier

git checkout commit_point_A -- <filename>

Voici un bonne référence pour que vous puissiez apprendre Git, vous permet de comprendre beaucoup plus facilement.

121
Kit Ho

Une chose à noter est le manque de "copie" dans git. C'est parce que vous avez déjà une copie complète dans votre référentiel local - votre référentiel local est une clone de votre référentiel en amont choisi. Donc, vous avez effectivement une checkout personnelle de tout , sans mettre un "verrou" sur ces fichiers dans le référentiel de référence.

Git fournit les valeurs de hachage SHA1 en tant que mécanisme permettant de vérifier que la copie que vous avez d'une arborescence de fichiers/répertoires/commit/repo est exactement la même que celle utilisée par quiconque est capable de déclarer des choses en tant que "Maître" dans la hiérarchie de confiance. Cela évite tous les "verrous" qui provoquent l’étouffement de la plupart des systèmes SCM (avec les problèmes habituels de copies privées, de grandes fusions, et pas de contrôle ou de gestion réels du code source ;-)!

11
Philip Oakley

Simplement git checkout a 2 utilisations

  1. Basculer entre les branches locales existantes comme git checkout <existing_local_branch_name>
  2. Créez une nouvelle branche à partir de la branche actuelle à l'aide de l'indicateur -b. Supposons que si vous êtes dans la branche maître, alors git checkout -b <new_feature_branch_name> créera une nouvelle branche avec le contenu du maître et basculera vers la nouvelle branche.

Vous pouvez trouver plus d'options sur le site officiel

5
Khader M A

checkout peut être utilisé dans de nombreux cas:

1er cas: basculer d'une branche à l'autre dans un référentiel local Par exemple: git checkout exists_branch_to_switch

Vous pouvez également créer une nouvelle branche et basculer dans ce cas avec -b

git checkout -b new_branch_to_switch

2ème cas: restaurer le fichier à partir de x rev

git checkout rev file_to_restore ...

2
Goms