1. Livres & vidéos
  2. Git
  3. Création d’un dépôt
Extrait - Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (5e édition)
Extraits du livre
Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (5e édition) Revenir à la page d'achat du livre

Création d’un dépôt

Créer un dépôt local

Pour tout nouveau projet que l’on souhaite versionner, il est nécessaire de créer un nouveau dépôt. C’est ensuite dans ce dépôt que Git stockera toutes nos informations. Pour cela, il faut se placer dans le dossier racine du projet. Par exemple, si le projet est un site web simple, nous pouvons imaginer que le dossier qui contiendra le projet se nomme www. Dans notre cas, le dossier qui va contenir le code du projet se nomme depot. Il faut donc se placer dans ce dossier et exécuter la commande suivante :

git init 

Git confirme la création du dépôt avec le message suivant :

Initialized empty Git repository in /Users/dauzon/Projets/depot/.git/ 

Cette action va créer un dossier nommé .git à la racine du projet. Sur la plupart des explorateurs de fichiers, ce dossier est par défaut invisible. Vous pouvez utiliser la ligne de commande pour visualiser ce dossier avec la commande ls -la sous les systèmes Linux ou macOS, et sous Windows en utilisant l’outil Cygwin.

Par défaut, la création d’un dépôt crée automatiquement une branche master. Pour changer le nom de cette branche, il est possible de définir l’option de configuration init.defaultBranch comme dans l’exemple ci-dessous.

git config --global init.defaultBranch main 
touch README.md 
git init ...

Le contenu du dossier .git

Le dossier .git héberge tout le contenu du dépôt utilisé par Git. Nous allons visualiser les dossiers et fichiers présents dans ce dossier. Pour cela, il faut se placer dans le répertoire .git en utilisant la commande cd :

cd .git 
ls -la 

Le système d’exploitation affiche alors une liste de fichiers et de dossiers :

-rw-r--r--   1 dauzon  staff   23  8 jui 23:30 HEAD 
drwxr-xr-x   2 dauzon  staff   68  8 jui 23:30 branches 
-rw-r--r--   1 dauzon  staff  137  8 jui 23:30 config 
-rw-r--r--   1 dauzon  staff   73  8 jui 23:30 description 
drwxr-xr-x  11 dauzon  staff  374  8 jui 23:30 hooks 
drwxr-xr-x   3 dauzon  staff  102  8 jui 23:30 info 
drwxr-xr-x   4 dauzon  staff  136  8 jui 23:30 objects 
drwxr-xr-x   4 dauzon  staff  136  8 jui 23:30 refs 

Chacun de ces fichiers ou dossiers contient des éléments que Git utilise pour suivre notre code. Voici...

Le fichier README

Une bonne pratique lors de la création d’un dépôt consiste à expliquer le projet dans un fichier README à la racine du projet. Ce fichier est celui que vous consultez sur la page GitHub principale d’un projet. Comme exemple, il est possible de regarder les pages GitHub des projets de Django et de Bootstrap en consultant les liens suivants :

Sur ces pages se trouve un bloc contenant les dossiers et les fichiers à la racine du projet. En dessous de ce bloc se trouve le bloc nommé README.md qui contient la présentation du projet. Le fichier README de Bootstrap porte l’extension md (pour Markdown) et celui de Django porte l’extension rst (pour reStructuredText). Ce sont deux formats abordés dans la suite de ce chapitre.

La présentation d’un projet est très importante et ne doit pas être négligée. Cette présentation est surtout à destination des développeurs qui utiliseront ou participeront au projet. Elle doit être très claire et contenir plusieurs parties :

  • Une partie présentant le projet : ses fonctionnalités, ses dépendances, etc. Cette partie doit être la plus compréhensible possible. Même un utilisateur débutant doit comprendre cette partie sans difficulté.

  • Une partie...

Markdown

1. Présentation

Markdown est un langage de présentation qui gagne en popularité depuis plusieurs années, comme le montre le graphique Google Trends ci-dessous :

images/03EI01N.png

Source : https://trends.google.fr/trends/explore?date=all&q=markdown

Ce langage n’est pas un langage de présentation avec une structure XML, comme l’est HTML. Ce langage a été conçu dans le but d’être lisible directement en mode texte, ce qui l’a rendu très populaire chez les développeurs. En effet, le format Markdown peut être consulté en mode texte et donc peut facilement être versionné. Il est d’ailleurs possible d’exporter des fichiers Markdown facilement vers du code HTML ou d’autres formats.

La syntaxe officielle est documentée sur le lien suivant : https://daringfireball.net/projects/markdown/syntax

Certaines syntaxes ne sont pas officielles, mais sont généralement bien supportées par les logiciels et bibliothèques s’interfaçant avec Markdown. Elles permettent d’ajouter des fonctionnalités absentes du format officiel. Les fichiers Markdown portent généralement l’extension .md.

Voici un exemple de fichier Markdown très simple, présentant les caractéristiques d’un jeu fictif, et l’affichage formaté de ce fichier sur GitHub :

# Stratégiii...

reStructuredText

1. Présentation

reStructuredText est un format de présentation à l’instar de Markdown. Il est un peu moins populaire que Markdown, mais propose certaines options qui sont absentes de Markdown.

La documentation officielle est très complète : https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html

La présentation de la syntaxe de reStructuredText sera plus succincte, car il convient à des usages plus poussés que Markdown et son apprentissage dépasse le cadre de ce livre. Il convient juste de garder à l’esprit que les possibilités de reStructuredText vont bien au-delà des quelques exemples ci-dessous.

Les fichiers reStructuredText portent généralement l’extension .rst.

2. Éléments de syntaxe

a. Titres

Il faut souligner les titres avec une suite de caractères. Les caractères utilisables pour définir les titres peuvent être nombreux. Voici la liste, conseillée par la documentation officielle : = - ` : . ’ " ~ ^ _ * + #

Voici un exemple composé de plusieurs titres :

Titre de niveau 1 
=================== 
 
Titre de niveau 2 
---------------------- 
 
Titre de niveau 1 
=================== 

La hiérarchie des titres n’est pas définie par le format, c’est-à-dire que reStructuredText va directement...

Outils pour travailler avec Markdown

Du fait de sa grande popularité, Markdown s’est vu doté de nombreux outils au fil des années. Les développeurs, les blogueurs et même les auteurs de l’édition traditionnelle se sont intéressés à ce format, d’où la grande diversité d’outils.

1. Sublime Text

Ce n’est pas l’outil qui gère le mieux le format Markdown. En revanche, c’est l’éditeur que de nombreux développeurs utilisent quotidiennement. Il est donc normal de vouloir l’utiliser pour écrire la documentation également. Sublime Text ne gère pas nativement le format Markdown (hormis le fait que ce soit un éditeur de texte). En revanche, il existe plusieurs plug-ins permettant d’éditer facilement et visuellement le format Markdown.

Sublime Text est un éditeur de texte compatible avec les trois systèmes d’exploitation principaux : Linux, macOS et Windows.

Le plug-in Markdown Preview permet d’exporter facilement le contenu d’un fichier Markdown vers un fichier HTML. C’est un moyen très pratique pour versionner une documentation et partager une version plus lisible. Voir la page GitHub du produit : https://github.com/revolunet/sublimetext-markdown-preview

Le plug-in MarkdownEditing permet d’avoir une interface proposant la coloration syntaxique....

Configurer le dépôt local

Git offre de nombreuses options de configuration permettant de le personnaliser, selon notre utilisation.

Il existe plusieurs manières de configurer un dépôt local et il existe de nombreux paramètres. Nous aborderons donc dans l’ordre :

  • La configuration minimale d’un projet (sans cette configuration minimale, vous ne pourrez pas utiliser Git).

  • Les différents niveaux de configuration.

  • Les paramètres configurables.

  • La création et l’utilisation d’alias.

1. Configuration minimale

Cette configuration a déjà été évoquée à la fin du chapitre Installation de Git, à la section Configuration requise, elle sera donc très rapidement survolée ici. Pour utiliser Git, il est nécessaire de passer par une étape de configuration préalable. Sans celle-ci, il n’est pas possible d’utiliser Git normalement, il refusera par exemple d’enregistrer vos modifications.

Cette configuration va servir à nous identifier pour que Git sache qui effectue telle ou telle modification. Voici donc comment configurer sur le dépôt nos nom, prénom et adresse e-mail :

git config --global user.name "Prenom Nom" 
git config --global user.email email@domain.ext 

Maintenant que la configuration initiale a été définie, il est possible de travailler avec Git. Pour avoir une aide concernant la configuration et ses paramètres, il faut utiliser la commande suivante :

git config --help 

2. Niveaux de configuration

Git utilise des fichiers pour stocker les différents éléments de configuration. Lorsque nous utilisons les commandes git config, ce sont indirectement ces fichiers que nous modifions.

Il existe trois niveaux de configuration dans Git. Ces niveaux de configuration ont tous une portée différente, c’est-à-dire que les éléments...

Les options de configuration avancées

Ces options de configuration ne sont pas particulièrement complexes, elles sont juste généralement moins utilisées que les précédentes et correspondent à des besoins plus précis.

1. Pagination

Lorsqu’on utilise des commandes comme git diff, si le résultat dépasse une page une pagination automatique sera effectuée à l’aide de less (commande UNIX affichant un texte page par page). Ce type de pagination peut déranger certains utilisateurs qui préféreraient n’avoir aucune pagination et naviguer sans contrainte dans le document. Pour cela, il faut définir une pagination de type cat :

git config --global pager = cat 

2. Expressions régulières étendues

Par défaut, Git n’active pas les expressions régulières étendues, c’est-à-dire que les métacaractères comme les accolades sont totalement ignorés. Pour ceux qui sont habitués aux expressions régulières et qui les utilisent couramment, il est préférable d’activer l’option suivante :

git config --global extendedRegexp = true 

3. Séparateur de mots

Lorsqu’on utilise git diff en mode mot (à l’aide de l’option --color-words par exemple), il peut être utile de spécifier à...