Pour résumer, le clone sert à récupérer des référentiels que vous n'avez pas, le checkout sert à 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 cloneSVN / CVS est checkout. La même formulation de termes différents prête souvent à confusion.
checkoutpeut également être utilisé pour d'autres choses, comme remplacer un fichier dans votre copie de travail par une version de ce fichier d'une autre révision.
svick
8
et quand utilisez-vous "pull" vs "checkout"?
Kokodoko
27
pull est une extraction plus une fusion, checkout est une opération locale qui ne fonctionne que sur des données déjà extraites. Ce n'est donc pas du tout comme la commande svn.
August Lilleaas
13
Venant du monde SVN, j'étais également confus. Wow .. quel gâchis. Dans un monde idéal, j'obligerais chaque fabricant de système de contrôle de source à utiliser les mêmes termes.
Zoltán Tamási
5
Fork est un terme github et n'est pas lié à git lui-même.
August Lilleaas,
123
git clone consiste à récupérer vos référentiels depuis le serveur git distant.
git checkout consiste à extraire l'état souhaité de votre référentiel (comme des branches ou des fichiers particuliers).
Par exemple, vous êtes actuellement sur la branche master et vous souhaitez passer en branche develop.
git checkout develop_branch
Par exemple, vous souhaitez passer à un statut particulier d'un fichier particulier
git checkout commit_point_A -- <filename>
Voici une bonne référence pour apprendre Git, vous permet de comprendre beaucoup plus facilement.
"depuis le serveur git distant" - il n'est pas nécessaire que le serveur soit distant. git clonefonctionnera également avec les dépôts locaux.
SET
1
Merci pour le lien vers une référence visuelle à git!
David Pointer
@Kit Ho: Le lien est bien comme référence, mais ce n'est pas beaucoup d'aide pour quelqu'un avec des questions de base sur git comme la personne ci-dessus. Comme le dit l'article lui-même, "Une fois que vous en saurez un peu sur le fonctionnement de git, ce site peut renforcer votre compréhension"
SN
Les définitions circulaires ne sont pas si utiles. Le mot "fetch" utilisé pour décrire le clone est utile et ajoute du sens, mais l'expression "checkout is to checkout ..." n'ajoute pas de sens et n'aide pas non plus à distinguer la différence entre les deux opérations.
C Perkins
11
Une chose à noter est le manque de "Copyout" 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 étant un clonede votre référentiel en amont choisi. Ainsi, vous avez effectivement un personnel checkoutde tout , sans mettre de «verrou» sur ces fichiers dans le référentiel de référence.
Git fournit les valeurs de hachage SHA1 comme mécanisme pour vérifier que la copie que vous avez d'un fichier / arborescence de répertoires / commit / repo est exactement la même que celle utilisée par quiconque est capable de déclarer des choses comme "Master" dans la hiérarchie de confiance. Cela évite tous ces «verrous» qui provoquent l'étouffement de la plupart des systèmes SCM (avec les problèmes habituels de copie privée, de grosses fusions, et aucun contrôle ou gestion réel du code source ;-)!
La question ne mentionne pas les verrous et il devrait être supposé par défaut de nos jours qu'une personne n'est pas familière avec ce concept, donc ces différences par rapport aux anciens VCS ne doivent être expliquées que si elles sont posées explicitement.
wRAR
6
Git checkout a 2 utilisations
Basculer entre les succursales locales existantes comme git checkout <existing_local_branch_name>
Créez une nouvelle branche à partir de la branche actuelle en utilisant l'indicateur -b. Supposons que si vous êtes à la branche principale git checkout -b <new_feature_branch_name>, vous créerez une nouvelle branche avec le contenu du maître et passerez à la branche nouvellement créée
Vous pouvez trouver plus d'options sur le site officiel
Réponses:
La page de manuel pour le paiement: http://git-scm.com/docs/git-checkout
La page de manuel pour clone: http://git-scm.com/docs/git-clone
Pour résumer, le clone sert à récupérer des référentiels que vous n'avez pas, le checkout sert à 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
SVN / CVS estcheckout
. La même formulation de termes différents prête souvent à confusion.la source
checkout
peut également être utilisé pour d'autres choses, comme remplacer un fichier dans votre copie de travail par une version de ce fichier d'une autre révision.git clone consiste à récupérer vos référentiels depuis le serveur git distant.
git checkout consiste à extraire l'état souhaité de votre référentiel (comme des branches ou des fichiers particuliers).
Par exemple, vous êtes actuellement sur la branche master et vous souhaitez passer en branche develop.
Par exemple, vous souhaitez passer à un statut particulier d'un fichier particulier
Voici une bonne référence pour apprendre Git, vous permet de comprendre beaucoup plus facilement.
la source
git clone
fonctionnera également avec les dépôts locaux.Une chose à noter est le manque de "Copyout" 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 étant un
clone
de votre référentiel en amont choisi. Ainsi, vous avez effectivement un personnelcheckout
de tout , sans mettre de «verrou» sur ces fichiers dans le référentiel de référence.Git fournit les valeurs de hachage SHA1 comme mécanisme pour vérifier que la copie que vous avez d'un fichier / arborescence de répertoires / commit / repo est exactement la même que celle utilisée par quiconque est capable de déclarer des choses comme "Master" dans la hiérarchie de confiance. Cela évite tous ces «verrous» qui provoquent l'étouffement de la plupart des systèmes SCM (avec les problèmes habituels de copie privée, de grosses fusions, et aucun contrôle ou gestion réel du code source ;-)!
la source
Git checkout a 2 utilisations
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
, vous créerez une nouvelle branche avec le contenu du maître et passerez à la branche nouvellement crééeVous pouvez trouver plus d'options sur le site officiel
la source
-b
option est géniale qui crée une nouvelle branche locale et la vérifie également en même temps dans une seule commande. J'ai adoré!checkout
peut être utilisé pour de nombreux cas:1er cas : basculer entre les branches dans le référentiel local Par exemple:
git checkout exists_branch_to_switch
Vous pouvez également créer une nouvelle branche et passer 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
...la source