Vous pouvez principalement démarrer un dépôt Git de deux manières.
-
Vous pouvez prendre un répertoire existant et le transformer en dépot Git.
-
Vous pouvez cloner un dépôt Git existant sur un autre serveur.
Dans les deux cas, vous vous retrouvez avec un dépôt Git sur votre machine locale, prêt pour y travailler.
Si vous commencez à suivre dans Git un projet existant qui n’est pas suivi en gestion de version, vous n’avez qu’à vous positionner dans le répertoire du projet. Si vous ne l’avez jamais fait, cela se présente de différentes manières selon votre système d’exploitation :
pour Linux:
$ cd /home/user/my_project
pour macOS:
$ cd /Users/user/my_project
pour Windows:
$ cd C:/Users/user/my_project
et entrez :
$ git init
Cela crée un nouveau sous-répertoire nommé .git
qui contient tous les fichiers nécessaires au dépôt — un squelette de dépôt Git.
Pour l’instant, aucun fichier n’est encore versionné.
(Cf. ch10-git-internals.asc pour plus d’information sur les fichiers contenus dans le répertoire .git
que vous venez de créer.)
Si vous souhaitez démarrer le contrôle de version sur des fichiers existants (par opposition à un répertoire vide), vous devrez probablement suivre ces fichiers et faire un commit initial.
Vous pouvez le réaliser avec quelques commandes add
qui spécifient les fichiers que vous souhaitez suivre, suivies par un git commit
:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
Nous allons détailler ce que ces commandes font dans quelques instants. À présent, vous avez un dépôt Git avec des fichiers suivis et un commit initial.
Si vous souhaitez obtenir une copie d’un dépôt Git existant — par exemple, un projet auquel vous aimeriez contribuer — la commande dont vous avez besoin s’appelle git clone
.
Si vous êtes familier avec d’autres systèmes de gestion de version tels que Subversion, vous noterez que la commande est clone
et non checkout
.
C’est une distinction importante — Git reçoit une copie de quasiment toutes les données dont le serveur dispose.
Toutes les versions de tous les fichiers pour l’historique du projet sont téléchargées quand vous lancez git clone
.
En fait, si le disque du serveur se corrompt, vous pouvez utiliser n’importe quel clone pour remettre le serveur dans l’état où il était au moment du clonage (vous pourriez perdre quelques paramètres du serveur, mais toutes les données sous gestion de version seraient récupérées — cf. ch04-git-on-the-server.asc pour de plus amples détails).
Vous clonez un dépôt avec git clone [url]
.
Par exemple, si vous voulez cloner la bibliothèque logicielle Git appelée libgit2, vous pouvez le faire de la manière suivante :
$ git clone https://github.com/libgit2/libgit2
Ceci crée un répertoire nommé libgit2
, initialise un répertoire .git
à l’intérieur, récupère toutes les données de ce dépôt, et extrait une copie de travail de la dernière version.
Si vous examinez le nouveau répertoire libgit2
, vous y verrez les fichiers du projet, prêts à être modifiés ou utilisés.
Si vous souhaitez cloner le dépôt dans un répertoire nommé différemment, vous pouvez spécifier le nom dans une option supplémentaire de la ligne de commande :
$ git clone https://github.com/libgit2/libgit2 monlibgit2
Cette commande réalise la même chose que la précédente, mais le répertoire cible s’appelle monlibgit2
.
Git dispose de différents protocoles de transfert que vous pouvez utiliser.
L’exemple précédent utilise le protocole https://
, mais vous pouvez aussi voir git://
ou utilisateur@serveur:/chemin.git
, qui utilise le protocole de transfert SSH.
ch04-git-on-the-server.asc introduit toutes les options disponibles pour mettre en place un serveur Git, ainsi que leurs avantages et inconvénients.