Quelle est la différence entre git clone
et git checkout
?
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.
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.
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 ;-)!
Simplement git checkout a 2 utilisations
git checkout <existing_local_branch_name>
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
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
...