Clone Git : copier le code source d’un dépôt !

Lorsque nous travaillons sur un grand projet avec de nombreuses personnes, nous finissons probablement par utiliser Git comme choix pour le versionnement des fichiers. Avec cela, nous pouvons utiliser les concepts de Git Flow pour pouvoir travailler sur de petites fonctionnalités. Avec cela, l’outil git clone est utile pour avoir un clone du dépôt sur nos machines.

Avec la commande Git clone, nous pouvons en peu de temps localiser tout l’historique d’un dépôt et le copier sur notre ordinateur. Cependant, nous devons prendre quelques précautions dans certains cas, comme lorsque le clonage d’un référentiel géant finit par devenir une tâche très longue et spacieuse pour votre disque dur, par exemple.

Dans cet article, nous allons vous montrer quelques paramètres, commandes et options concernant le clone Git, bonne lecture !

  • Qu’est-ce que le clone Git et à quoi sert-il ?
  • Collaboration entre les référentiels et les copies de développement
  • Apprendre à connaître certaines configurations de clones Git
  • Options à utiliser avec le clone Git
  • URL de protocole distant Git

Qu’est-ce que le clone Git et à quoi sert-il ?

Représentation de ce que fait Git Clone

Git clone est l’une des nombreuses commandes Git. Son objectif principal est de cloner tous les fichiers du référentiel distant vers un référentiel local. Par défaut, tout l’historique des commits, branches et fusions est également copié. Cette commande est très utile lorsque vous avez besoin d’un nouvelle copie du projet ou simplement parce que nous voulons vérifier certains fichiers.

Pour simplifier, un dépôt distant est aujourd’hui probablement attribué sur un site Git célèbre, comme Github, GitLab et Bitbucket, etc. Donc, si le référentiel est public, toute personne intéressée peut cloner n’importe lequel des milliers de projets sur ces plateformes.

Un exemple de clone git peut être trouvé ci-dessous, dans lequel une copie du dépôt central stocké sur un serveur nommé exemple.com avec l’utilisateur SSH untel est montré :

 git clone ssh://fula[email protected]/caminho/para/o/meu-projeto.git 
 cd meu-projeto
 # Comece a trabalhar no projeto 

La première commande démarre un nouveau dépôt Git dans le dossier mon-projet sur votre machine locale et le remplit avec les données du serveur distant. Ensuite, vous pouvez donner un cd pour entrer dans le dépôt précédemment créé et commencer à apporter des modifications aux fichiers, à valider les modifications, à créer des balises ou autre. Voyez que l’extension .git a été omise dans le dépôt cloné, cela signifie que l’état de la copie n’est pas vide.

Qu’en est-il de la sécurité ? Si nous pouvons cloner, nous pourrions également utiliser la fonction Git push pour exercer un changement dans le référentiel approprié ? La réponse par défaut est pas deCependant, il faut une sorte d’authentification pour qu’un utilisateur ordinaire puisse apporter des modifications aux dépôts d’autres personnes.

Il existe également d’autres possibilités, nous sommes en mesure de faire une bifurcation (une sorte de clone du référentiel) du dépôt souhaité et nous pouvons rapidement faire nos propres changements. À la fin, nous créons un Demande de retrait pour que le responsable du dépôt reconnaisse nos changements et fasse une analyse technique de notre code. Avec la réponse positive, nous avons l’insertion de nos changements dans le référentiel principal.

Nous sommes également en mesure de DevOpssi vous travaillez sur un projet d’entreprise, par exemple. De cette façon, avec la permission accordée, nous avons la possibilité d’utiliser les fameuses commandes Git : git pull et git push.

Principales étapes du clonage d’un référentiel :

  • Cloner un référentiel distant ;
  • Récupérer les changements via git pull ;
  • Authentification avec SSH ou HTTPS ;
  • Envoyer les changements via git push.

Collaboration entre les référentiels et les copies de développement

Collaboration de référentiel à référentiel

Le projet étant déjà configuré dans le dépôt central, nous utilisons la commande git clone pour obtenir le fichier copie de développement. Avec cette copie, le développeur obtient toutes les opérations de contrôle de version et les collaborations gérables à partir du référentiel local.

A partir de là, nous pouvons gérer notre propre projet sans aucune connexion avec le référentiel distant. Si nécessaire, nous pouvons récupérer certaines informations à partir de git pull. Enfin, il faut comprendre que cette commande crée une copie exacte d’un référentiel.

Si vous avez déjà travaillé avec un dépôt SVN, vous avez sûrement entendu parler du terme « copie de travail »copie de travail. Dans l’architecture de SVN, nous avons l’idée que le dépôt distant est le dépôt central et que tous les changements doivent être envoyés depuis une copie de travail. D’autre part, Git a la proposition de créer plusieurs dépôts centraux sur des machines locales, grâce à l’architecture de cet outil.

De cette façon, nous nous rendons compte que le flux de travail de Git est beaucoup plus flexible que celui adopté par SVNpuisque cela signifie que nous disposons d’une grande marge de manœuvre pour modifier ce flux, et même pour mettre en œuvre le flux de référentiel unique de SVN. Le fait est que Git est très malléable pour les changements, et avec de petits pas, nous pouvons faire beaucoup de différents types de flux.

Apprendre à connaître certaines configurations de clones Git

Juste en dessous, nous avons quelques paramètres pour vous aider à cloner un dépôt :

git clone -branch

Avec argument -branche nous pouvons spécifier une branche que nous souhaitons clonerpuisque par défaut la copie est faite à partir de la branche principale du référentiel. En outre, nous pouvons spécifier une étiquette au lieu d’une branche.

git clone -branch nova_funcionalidade git://repositorioremoto.git

Par cette commande, nous mettrons la branche « new_functionality » du dépôt distant. Cette fonctionnalité est destinée à accélérer le processus de changement de branche à partir d’un nouveau projet, puisqu’il est assez coûteux de cloner un dépôt de toute façon et de devoir chercher la branche ou le tag que vous voulez.

git clone -mirror

Cette commande a la fonctionnalité de cloner un référentiel que vous ne pouvez pas modifierc’est-à-dire que vous ne pouvez pas modifier les références, les branches et les fichiers. Il peut être utilisé comme base lors de la création d’un nouveau dépôt, ou lors de l’utilisation de Git pour exécuter des tests automatisés sur votre projet.

git clone -bare

Nous utilisons cette commande lorsque nous ne voulons pas travailler avec des dépôts à distance. De cette façon, lorsque le référentiel est cloné, nous ne pouvons pas obtenir ou commettre des changements de code. Il peut être utilisé pour tester des dépôts sans se soucier de faire des commits non désirés vers le dépôt central.

git clone -template

Sert à cloner n’importe quel modèle dans n’importe quel répertoire local. Il est souvent utilisé pour cloner des projets Boilerplates. Au cas où vous ne le sauriez pas, on parle de code Boilerplate lorsqu’un référentiel contient la structure initiale d’un projet. Nous avons ainsi la possibilité de cloner ce code et d’apporter les modifications appropriées à notre situation.

git clone --template=<diretório do template> <localização do repositório>

Options à utiliser avec le clone Git

Nous allons maintenant voir quelques options qui peuvent être utiles dans votre vie de tous les jours. Si vous souhaitez approfondir certaines d’entre elles, jetez un coup d’œil à la documentation officielle de Git :

Optimisation de votre dépôt : git clone -sparse

Au lieu de remplir le dossier de travail avec tous les fichiers commit de manière récursive, la commande le remplit uniquement avec les fichiers du répertoire racine. Elle est quelque peu utile pour améliorer les performances des projets comportant de nombreux dossiers et sous-répertoires.

Clonage superficiel : git clone -depth

Cette commande clone un référentiel et à partir du paramètre de profondeur nous avons le numéro des commits les plus récents que nous voulons obtenir. Dans l’exemple suivant, la profondeur est de 1, donc le clonage du référentiel ne prendra que le dernier enregistrement de l’historique du projet.

git clone -depth=1 <repositório>

Cette commande est très utilisée pour les dépôts importants et étendus, avec elle nous pouvons économiser de l’espace disque et du temps dans les opérations Git. Nous pouvons également appeler cette méthode « Shallow clone »..

Clonage des sous-modules : git clone -recurse-submodules[=<pathspec>]

Dès que le clone est créé, il démarre et clone les submodules qui sont fournis dans le fichier pathpec.

 git clone --recurse-submodules git://repositorioremoto.com/repo.git

C’est une excellente option si vous êtes cloner un référentiel dont vous savez qu’il contient des sous-modulesVous pouvez donc travailler plus rapidement en les utilisant comme dépendance dans votre développement local.

Clonage d’une seule branche : git clone -single-branch

git clone [url] --branch [branch] --single-branch

Par défaut, la commande git clone laissera une trace sur toutes les branches distantes de notre dépôt cloné. Avec cette option, nous avons la possibilité de cloner une seule branche du référentiel. Par défaut, le maître sera cloné, cependant, vous pouvez spécifier une autre branche ou même plusieurs branches.

Cette commande est recommandée pour les dépôts avec beaucoup de fichiers lourds qui finissent par ralentir les performances du dépôt, avec elle nous ramenons un peu de vitesse et économisons de l’espace mémoire.

URL de protocole distant Git

Git lui-même a sa propre façon de transmettre les emplacements des dépôts distants à ses commandes internes. Puisque git clone est principalement utilisé sur des dépôts distants, nous allons examiner ses 5 protocoles pour les url distants.

Protocole SSH à distance

Exemple de protocoles git clone à distance

Secure Shell ou SSH est un protocole réseau authentifié largement utilisé qui est configuré par défaut sur les référentiels distants.. Comme ce protocole est authentifié, nous devons disposer d’informations d’identification pour que le serveur nous permette de nous connecter.

Le format de la connexion SSH est ssh://{usuário}@{hospedeiro}:{porta}/caminho/para/o/repositório.git ou também {usuário}@hospedeiro:caminho/para/o/repositório.git.

Pour utiliser ce type d’authentification, vous devez générer localement une clé SSH publique et privée, ajouter la clé privée pour votre agent SSH et enfin ajouter la clé publique pour le service distant.

Protocole distant Git

Le plus simple de tous les protocoles, le protocole à distance de Git, n’a pas de méthode d’authentification et… doit toujours être utilisé avec prudence.

Le format de l’url est le suivant git://{hospedeiro}:[porta]/caminho/para/o/repositório.git

Protocole distant HTTP(S)

HTTP(S) signifie Hyper Text Transfer Protocol (Secure), en portugais Hypertext Transfer Protocol (secure). Avec l’aide de HTTPS, nous pouvons authentifier les dépôts avec un nom d’utilisateur et un mot de passe.

Par rapport au protocole HTTP, le protocole HTTPS est plus sûr.

Le format de l’url est le suivant

https://{hospedeiro}:{porta}/caminho/para/o/repositório.git

Protocole distant FTP

Enfin, il est également possible d’utiliser les urls avec le FTP, mais cette technologie n’est plus recommandée car elle est inefficace et obsolète.

Le format de votre url est

ftp[s]://{hospedeiro}[:porta]/caminho/para/o/repositório.git.

Git clone est l’une des principales commandes de l’ensemble de l’outil Git. Grâce à elle, nous pouvons cloner un dépôt de manière simple et procéder à un développement à distance. Grâce aux différentes options et configurations, nous pouvons élever le niveau et acquérir de nouvelles fonctionnalités. Un exemple qui a gagné beaucoup de notoriété récemment est la question des modèles – dans cette petite configuration, nous pouvons cloner à partir d’un référentiel de modèles vers un référentiel local plusieurs fichiers pré-moulés qui faciliteront les développements éventuels.

En outre, nous avons appris à optimiser les dépôts avec un long historique de commits et à cloner initialement les sous-modules d’un dépôt. Nous espérons que vous avez compris un peu plus les fonctionnalités du clone Git en lisant ce post !

Si vous avez aimé ce texte, continuez la lecture de Git config : comment configurer vos dépôts ?