Formation Git en vidéo
👆 Cliquez sur l'image pour découvrir la formation en vidéo

Commande git add (suite)

Nous allons continuer la découverte de notre commande git add.

Pour cet exercice, nous allons créer un nouveau fichier et modifier celui qui existe déjà.

Modifier le fichier et créer un nouveau

C’est parti 😎 !

Créer le nouveau fichier

touch server.js

Modifier le fichier existant

Pour la modification des fichiers, j’utiliserai l’éditeur Vim mais de votre côté vous pouvez choisir celui qui vous plaira.

// Fichier index.js
console.log("Bonjour, tout le monde");

Vérifier le status

Maintenant, vérifions le status.

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   index.js

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
console.log("Salut, tout le monde");
    modified:   index.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    server.js

Intéressant 🧐 !

Git ne donne pas le même status à un nouveau fichier et à un fichier modifié.

  • Nouveau fichier : Untracked file (non suivi)
  • Fichier modifié : Changes not staged (Modification non indexée)

Schématisons le tout.

Modifier un fichier

Récupérer la version de l’index

Avant d’ajouter toutes ces modifications à l’index, nous allons utiliser une commande qui nous permettra de récupérer la version 1 du fichier index.js.

Notre fichier index.js contient normalement du code.

Vérifions !

cat index.js
console.log("Bonjour, tout le monde");

OK, très bien !

Maintenant, utiliser la commande qui suit pour récupérer la version qui est dans l’index.

git restore index.js

Vérifions le contenu.

cat index.js

Cette fois-ci, le fichier est vide et c’est normal, car nous avons récupéré la version dans l’index de Git qui ne contenait rien.

Maintenant, nous allons réécrire quelque chose dans index.js avec un éditeur.

// Fichier index.js
console.log("Salut, tout le monde");
git status
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   index.js

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
console.log("Salut, tout le monde");
    modified:   index.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    server.js

Nous avons les rôles de départ.

Ajouter les modifications à l’index de Git

Pour le fichier server.js, nous connaissons sa position et nous savons comment l’ajouter à l’index de Git. Il suffit de taper la commande ci-dessous.

git add server.js

Mais réfléchissons à la position de index.js 🤔.

Le fichier index.js est bien à l’index de Git mais pas les nouvelles modifications. J’ai représenté cette notion avec deux versions du fichier.

Deux fichiers en un dans Git

Comment indexer les modifications ?

Très simple 😌 !

On utilisera la commande que l’on connaît déjà.

git add index.js

Voilà ! Après avoir exécuté les commandes git add server.js et git add index.js, vous pouvez vérifier le status.

Il est possible d’aller plus vite pour enregistrer à l’index de Git plusieurs fichiers grâce à la commande git add .. Elle permet d’indexer tous les fichiers concernés du dossier courant.

git status
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   index.js
    new file:   server.js
Mise à jour dans l'index Git

Mais pourquoi nous renvoie-t-on comme information à l’affichage deux nouveaux fichiers (new file) ?

Parce que nous n’avons pas encore enregistré, à proprement parler, une version.

C’est ce que nous ferons plus tard.

Modifions le schéma avec les commandes que nous avons utilisées.

Liste des commandes Git version 1