Débuter avec Git partie 1 : créer un dépôt

Git reste un programme incompris et craint par beaucoup alors qu’il est aujourd’hui indistinctement utilisé par les développeurs et les sysadmins. Afin de démystifier ce formidable outil, je vous propose une série d’articles à l’approche très concrète pour débuter avec Git et l’utiliser efficacement ensuite.

Le premier article de cette série va se concentrer sur la création d’un dépôt Git. Afin de réfléter l’usage actuel qui allie le plus souvent un dépôt Git local et un dépôt distant, nous nous appuierons sur Gitlab.com, excellente forge logicielle en ligne basée sur le logiciel libre Gitlab.

Qu’est-ce qu’un dépôt de sources ?

Le dépôt de sources est très concrètement un répertoire sur votre système, contenant lu-même un répertoire caché nommé .git à sa racine. Vous y stockerez votre code source et il enregistrera les modifications apportées au code dont il a la charge.

Pour prendre directement de bonnes habitudes, nous allons créer un nouveau projet à partir de notre compte Gitlab.com. Un projet Gitlab offre un dépôt distant et une suite d’outils autour. Dans un premier temps nous ne nous intéresserons qu’au dépôt. Le but est, dans un premier temps, de montrer le lien entre le dépôt distant et le dépôt local.

Pourquoi un dépôt distant ?

Tout simplement dans un premier temps pour sauver votre code sur un autre ordinateur que le vôtre, et dans un second temps de permettre le travail collaboratif.

Créer un projet sur Gitlab.com

Nous commençons par créer un compte sur Gitlab.com.

Une fois connecté, nous créons maintenant un nouveau projet.

Nous lui donnons également un nom. Ce projet n’ayant pas (encore) comme but de devenir public, nous restons en dépôt privé, ce qui signifie que l’accès au dépôt sera restreint par un identifiant et un mot de passe.

Nous en avons fini avec Gitlab.com. De retour à Git et à la ligne de commande.

Cloner un dépôt distant

Sur notre poste, nous allons commencer par cloner le dépôt distant depuis Gitlab.com vers notre poste local :

$ git clone https://gitlab.com/chaica/toto.git
Cloning into 'toto'...
warning: You appear to have cloned an empty repository.
$ cd toto
$ ls -a
.  ..  .git

Comment se souvenir d’où vient ce code ? La commmande git remote va nous permettre de voir le lien entre notre dépôt local et le dépôt distant de Gitlab.com :

$ git remote -v
origin https://gitlab.com/chaica/toto (fetch)
origin https://gitlab.com/chaica/toto (push)

Nous détaillerons plus tard, l’important est de voir qu’il y a bien un lien entre le dépôt local et le dépôt distant.

S’identifier

Le dépôt Git dans lequel vous travaillez va bientôt chercher à identifier la personne qui procède à des modifications. Pour cela nous allons définir notre identité au niveau local – c’est-à-dire de ce dépôt – avec les commandes suivantes :

$ git config --local user.name "Carl Chenet"
$ git config --local user.email "chaica@ohmytux.com"

Git créé en fait ici un fichier .git/config contenant les informations fournies.

Vous pouvez également définir votre identité au niveau global, pour ré-utiliser cette configuration pour tous les dépôts que vous créerez avec cet utilisateur du système :

$ git config --global user.name "Carl Chenet"
$ git config --global user.email "chaica@ohmytux.com"

Git crée en fait ici un fichier ~/.gitconfig contenant les informations fournies.

Saisir le mot de passe le moins possible

Lorsque nous avons cloné notre dépôt plus haut dans l’article, vous avez dû saisir un mot de passe. J’imagine que vous avez choisi un mot de passe à 24 caractères pour protéger votre compte Gitlab.com, qui est donc également le mot de passe de votre dépôt distant. Dans les prochains articles, nous allons beaucoup interagir avec le dépôt distant et il serait assez pénible d’avoir à le saisir régulièrement. Pour remédier à cela nous allons immédiatement passer la commande suivante :

$ git config --local credential.helper cache

Le dernier argument indique le type de stockage du mot de passe. Ici il s’agit uniquement d’un cache d’une durée de vie égale à 15 minutes. Si vous souhaitez stocker définitivement votre mot de passe, vous pouvez utiliser la commande suivante :

$ git config credential.helper store

Vos mots de passe seront stockés par défaut dans ~/.git-credentials. Attention, les mots de passe sont sauvés en clair dans ce fichier.

Conclusion

Pour une première approche de Git, nous avons appris à créer un projet sur Gitlab.com, à rapatrier localement le dépôt créé puis à le configurer pour l’utiliser le plus simplement possible. Nous verrons les premières utilisations de ce dépôt dans un prochain article.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Suivre l’actualité du Logiciel Libre et Open Source francophone

Abonnez-vous au Courrier du hacker, une newsletter hebdomadaire résumant le meilleur de l’actualité francophone du Logiciel Libre et Open Source. Déjà plus de 80 numéros et 2000 abonnés.

6 thoughts on “Débuter avec Git partie 1 : créer un dépôt

  1. Hello !
    Pour la partie “Saisir le mot de passe le moins possible”, une clé SSH fait tout aussi bien l’affaire non ?
    Bonne journée !

    • Tout à fait, et ce sera sûrement abordé dans un prochain article. Je vais essayer de maintenir la taille des articles très petite, en abordant à chaque fois deux ou trois notions essentielles. Je renverrai les articles entre eux pour les différentes façons de faire les choses quand ça devient trop verbeux.

  2. Pofilo > D’accord avec toi ! Et, d’ailleurs, il est peut-être temps (même si ce topic est parfait !) d’expliquer comment vraiment utiliser Git avec SSH.

    Je parle d’expérience. Noob en ce qui concerne Git, j’ai su m’en dépatouiller via les différents trouvés tutos ici et là. Hélas, dès qu’il s’agit d’utiliser Git + SSH, c’est le parcours du combattant (surtout pour trouver une doc en Fr).

    Bonne continuation !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *