Quelle est la difference entre git clone
et git checkout
?
Quelle est la difference entre git clone
et git checkout
?
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 est checkout
. La même formulation de termes différents prête souvent à confusion.
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.
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.
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 personnel checkout
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 ;-)!
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
-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
...