Initialiser un dépôt Git
Dans cet atelier pratique, nous allons prendre en main l'outil git à
proprement parler. Pour l'instant, nous n'aurons besoin d'aucun hub, étant
donné que nous allons travailler en local sur notre machine.
Qu'est-ce qu'un dépôt Git ?
Un projet informatique est généralement constitué de toutes sortes de fichiers :
-
du code source
-
des scripts shell
-
de la documentation
Si nous voulons gérer tous ces fichiers avec Git, la première chose à faire c'est de créer un dépôt Git.
Est-ce vraiment du texte ?
Git gère très bien le code source, les scripts shell, la documentation au format Markdown ou AsciiDoc et plus généralement tout ce qui se gère avec un éditeur de texte simple. Ne l'utilisez pas pour vos documents Word ou vos fichiers Excel.
Rappelez-vous que la principale raison pour laquelle nous utilisons un VCS (Version Control System ou logiciel de gestion de versions), c'est qu'il nous permet d'enregistrer tout l'historique de notre projet sous forme d'instantanés à intervalles réguliers.
La première chose que nous allons faire, c'est de créer un dépôt Git à
l'intérieur de ce répertoire pour permettre à Git de stocker l'historique et
les instantanés. Peu importe l'envergure de notre projet, la création d'un
dépôt Git passe toujours par l'invocation de la commande git init à la racine
du projet.
Mon premier dépôt Git
Placez-vous dans le répertoire formation-git :
Créez un répertoire atelier-05 et placez-vous dedans :
Créez un dépôt Git en invoquant la commande suivante :
$ git init
hint: Using 'master' as the name for the initial branch. This default branch
hint: name is subject to change. To configure the initial branch name to use
hint: in all of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in .../formation-git/atelier-05/.git/
Droit au but
Pour l'instant vous pouvez sereinement ignorer toutes les lignes qui
commencent par hint: (astuce). Nous nous y intéresserons en temps et en
heure, mais pour l'instant, elles ne nous empêcheront pas de vivre.
Ce qui compte maintenant, c'est la dernière ligne :
Git nous informe ici que tout s'est bien passé et que nous avons crée (ou initialisé) notre premier dépôt (repository) Git.
Cette initialisation s'est soldée par la création d'un répertoire caché
.git :
Voici à quoi ressemble le contenu de ce répertoire :
$ tree .git/
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── fsmonitor-watchman.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── pre-merge-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ ├── pre-receive.sample
│ ├── push-to-checkout.sample
│ ├── sendemail-validate.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
10 directories, 18 files
La boîte noire .git
Nous allons faire abstraction du contenu du répertoire .git et le traiter
comme une boîte noire. Faire abstraction est une expression savante qui
veut dire tout simplement qu'on s'en fiche royalement.
En revanche, retenons le fait que le répertoire dans lequel nous avons invoqué
la commande git init sera considéré comme le répertoire de travail
(working directory) ou la copie de travail.
Dans ce répertoire, créez un fichier README.md et éditez-le comme ceci :
Ajoutez le fichier à l'index de Git :
Validez avec la commande suivante :
$ git commit -m "Mon premier commit"
[master (root-commit) a95d10e] Mon premier commit
1 file changed, 3 insertions(+)
create mode 100644 README.md
Quelques remarques sur ce que nous venons de faire :
-
Dans un premier temps, nous avons ajouté le fichier
README.mdà l'index de Git. -
Puis nous avons effectué un commit, ce qui revient à valider ou entériner notre travail. Cette opération nécessite de fournir un message pour expliquer ce que nous faisons.
-
L'option
-mou--messagepermet de fournir un message. Utilisez l'option longue si vous avez un penchant prononcé pour la dactylographie. -
Notez la petite séquence de chiffres et de lettres
a95d10e. Chez vous ce sera autre chose. Du moment que vous voyez la lignecreate mode, tout va bien.
À présent, créez un deuxième fichier hello-world.sh et éditez-le comme
ceci :
Note pour les chipoteurs
C'est un cours sur Git, pas une formation sur la programmation, hein. Je fais exprès de choisir des exemples extrêmement simples pour vous permettre de vous concentrer sur la gestion de versions à proprement parler tout en ayant le moins possible de texte à taper.
Rendez le fichier exécutable :
Exécutez-le pour le fun :
Ajoutez le fichier à l'index de Git :
Effectuez un commit avec un message qui va bien :
$ git commit -m "Ajout d'un script qui dit bonjour"
[master d5acff2] Ajout d'un script qui dit bonjour
1 file changed, 5 insertions(+)
create mode 100755 hello-world.sh
Que veut dire commit ?
Le verbe anglais « to commit » pourra être traduit en français
par « valider » ou « entériner » Alternativement, nous
pouvons « faire un commit ». Dans la documentation française,
vous trouverez parfois le néologisme franglais « commiter ».
Peu importe votre préférence lexicale, du moment que vous ne finissez pas
par « commettre ».
À vous de jouer !
Challenge n° 1
-
Créez un répertoire
formation-git/atelier-06. -
À l'intérieur de ce répertoire, créez un répertoire
curriculum-vitae. -
Initialisez un dépôt Git dans ce répertoire.
-
Créez un fichier
Curriculum.mdavec votre CV simplifié en syntaxe Markdown. -
Ajoutez ce fichier à l'index de Git.
-
Effectuez un commit avec le message « Premier jet de mon CV »
Challenge n° 2
-
Créez un répertoire
formation-git/atelier-07. -
À l'intérieur de ce répertoire, créez un répertoire
hello-user. -
Initialisez un dépôt Git dans ce répertoire.
-
Créez un script shell
hello-user.shqui salue l'utilisateur connecté en utilisant la variable d'environnement$USER. -
Rendez le script exécutable.
-
Ajoutez ce script à l'index de Git.
-
Effectuez un commit avec le message « Commit initial »
-
Créez un fichier
README.txtqui explique en une ou deux lignes ce que fait votre script. -
Ajoutez ce fichier à l'index de Git.
-
Effectuez un commit avec un message qui va bien.
À ce stade, vous vous demandez probablement pourquoi Git nous fait sauter à travers des cerceaux en feu en nous obligeant à chaque fois d'invoquer plusieurs commandes pour enregistrer notre travail. C'est ce qui fait l'objet de notre prochain atelier pratique.
