Enregistrer des modifications et modifier un dépôt Git

Dans la leçon précédente, nous avons initialisé un premier dépôt Git. Dans cette leçon, nous allons apprendre à enregistrer les modifications effectuées sur notre projet dans Git ainsi qu’à modifier un dépôt Git (enlever des fichiers du suivi, renommer un fichier, etc.).

 

Ajouter ou modifier des fichiers dans un projet et actualiser notre dépôt Git

A ce niveau, nous avons donc d’un côté notre projet contenant un ensemble de fichiers et de ressources sur lesquelles on travaille ainsi qu’un dépôt Git qui sert à gérer les différentes versions de notre projet.

En continuant à travailler sur notre projet, nous allons être amenés à ajouter, modifier, voire supprimer des fichiers. On va indiquer tous ces changements à Git pour qu’il conserve un historique des versions auquel on pourra ensuite accéder pour revenir à un état précédent du projet (dans le cas où une modification entraine un bogue par exemple ou n’amène pas le résultat souhaité).

A chaque fois qu’on souhaite enregistrer une modification de fichier ou un ajout de fichier dans le dépôt Git, on va devoir utiliser les commandes git add et git commit comme on a pu le faire dans la leçon précédente.

J’attire ici votre attention sur un point important : le commit (la validation / l’enregistrement en base de données) d’un fichier se basera sur l’état de ce fichier au moment du git add.

Cela signifie que si vous effectuer une commande git add sur un fichier puis modifiez à nouveau le fichier puis effectuez un git commit, c’est le fichier dans son état au moment du dernier git add qui sera validé et les dernières modifications ne seront donc pas enregistrées dans le dépôt Git.

Si vous souhaitez enregistrer toujours la dernière version d’un fichier, pensez donc bien toujours à effectuer un git add juste avant un git commit. Pour mettre en un coup les fichiers modifiés et déjà sous suivi dans la zone d’index puis pour les valider, vous pouvez également utiliser git commit avec une option -a comme ceci : git commit -a. Cela vous dispense d’avoir à taper git add.

 

Supprimer un fichier d’un projet et / ou l’exclure du suivi de version Git

Concernant la suppression de fichiers, il existe plusieurs situations possibles en fonction de ce que vous souhaitez réellement faire : voulez vous simplement exclure un fichier du suivi de version mais le conserver dans votre projet ou également le supprimer du projet ?

Avant tout, notez que simplement supprimer un fichier de votre dossier avec une commande Bash rm par exemple ne suffira pas pour que Git oublie ce fichier : il apparaitra dans chaque git status dans une section “changes not stages for commit” (modifications qui ne seront pas validées).

On peut s’en assurer en faisant le test. Pour cela, commençons par ajouter un nouveau fichier dans notre répertoire “projet-git”. On peut faire cela avec une commande Bash touch.

Commande bash touch ajout fichier git

git status apres git touch

Comme le fichier vient tout juste d’être ajouté, on va devoir l’indexer pour qu’il soit sous suivi Git puis le valider.

git commit -m

Ici, j’utilise la commande git commit avec une option -m qui me permet de renseigner directement le message lié à mon commit plutôt que de devoir le faire dans VIM.

Le fichier est désormais sous suivi et la dernière version est enregistrée en base. Essayons maintenant de l’effacer avec une commande rm par exemple et tapons un nouveau git status :

git status apres git rm

Comme vous pouvez le voir, Git continue de suivre le fichier et la suppression simple du fichier ne sera pas validée comme changement par Git.

Pour supprimer un fichier et l’exclure du suivi de version, nous allons utiliser la commande git rm (et non pas simplement une commande Bash rm).

reajout de fichier avec touch

git et la commande rm

git rm et git commit

Pour simplement exclure un fichier du suivi Git mais le conserver dans le projet, on va utiliser la même commande git rm mais avec cette fois-ci une option --cached.

ajout fichier avec touch

git rm cached

git status apres git rm cached

commit d'un git rm cached

Ici, le fichier a bien été exclu du suivi Git mais existe toujours dans notre projet. On va ensuite pouvoir modifier ce fichier (lui ajouter du texte par exemple) comme n’importe quel fichier et Git ne se préoccupera pas des modifications.

verification de l'efficacite de la commande git rm cached

 

Retirer un fichier de la zone d’index de Git

Le contenu de la zone d’index est ce qui sera proposé lors du prochain commit. Imaginons qu’on ait ajouté un fichier à la zone d’index par erreur. Pour retirer un fichier de l’index, on peut utiliser git reset HEAD nom-du-fichier.

A la différence de git rm, le fichier continuera d’être suivi par Git. Seulement, le fichier dans sa version actuelle va être retiré de l’index et ne fera donc pas partie du prochain commit.

Regardez plutôt l’exemple ci-dessous :

git reset

Ici, on ajoute à nouveau le fichier fichier2.txt à l’index et on le passe donc sous suivi de version. On valide cela avec git commit puis on modifie le contenu de notre fichier et on ajoute la dernière version de notre fichier à la zone d’index pour qu’il fasse partie du prochain commit. Finalement, on change d’idée et on veut retirer cette version de la zone d’index. On fait cela avec git reset HEAD fichier2.txt.

 

Empêcher l’indexation de certains fichiers dans Git

Lorsqu’on dispose d’un projet et qu’on souhaite utiliser Git pour effectuer un suivi de version, il est courant qu’on souhaite exclure certains fichiers du suivi de version comme certains fichiers générés automatiquement, des fichiers de configuration, des fichiers sensibles, etc.

On peut informer Git des fichiers qu’on ne souhaite pas indexer en créant un fichier .gitignore et en ajoutant les différents fichiers qu’on souhaite ignorer. Notez qu’on peut également mentionner des schémas de noms pour exclure tous les fichiers correspondant à ce schéma et qu’on peut même exclure le contenu entier d’un répertoire en écrivant le chemin du répertoire suivi d’un slash.

 

Renommer un fichier dans Git

On peut également renommer un fichier de notre projet depuis Git en utilisant cette fois-ci une commande git mv ancien-nom-fichier nouveau-nom-fichier.

On peut par exemple renommer notre fichier “README.txt” en “LISEZMOI.txt” de la manière suivante :

git mv pour renommage de fichier

Le fichier a bien été renommé dans notre répertoire et le changement est prêt à être validé dans le prochain commit.

Laisser un commentaire