GIT : ignorer certains fichiers de votre dépôt

de | 2017-01-13

Dans cet article –  puisqu’il n’y a pas que les bases de données dans la vie –  nous allons voir comment sélectionner précisément les fichiers que nous souhaitons versionner. En bonus, nous réviserons un minimum de  commandes utiles avec Git. Même si vous ne faites pas de développement, nous vous conseillons vivement de mettre votre dossier de documents sous Git : une erreur est vite arrivée et cela peut vous éviter de perdre des heures de travail.

Comme exemple, nous utiliserons le dépôt d’un projet de développement logiciel. Il contient un mélange de fichiers textes, de fichiers de configuration et de sources compressées. Comme c’est y répertoire de travail, on y trouve également des fichiers temporaires et d’autres cachés. Les commandes sont données pour Linux mais il existe des versions pour MS Windows, la plus connue était TortoiseGit.

Donc, nous allons créer un fichier « .gitignore » dans notre répertoire de travail et y écrire les directives d’exclusion. C’est plus simple à faire qu’à dire, profitons-en.

 

En premier lieu, initialiser le dépôt :

 git init

Dépôt Git vide initialisé dans /dossier//WORK_DIR/.git/ 

Sans autre action, Git surveillera ces fichiers :


$ git status
.hidden_file1
.hidden_file2
.~fichiertemporaire.doc#
archive1.tar.gz
archive2.tar.gz
archive3.zip
archive4.zip
archive5.zip
document1.doc
exemple1.exemple
exemple2.exemple
file1.yml
file2.yml
file3.yml
file4.yml
file5.yml
file6.yml
image1.jpg
image2.png
script.sh
texte1.txt
texte2.txt
texte3.txt

Comme vous pouvez le voir, les archives pèsent plus de 100 Mo et ne seront jamais modifiées. Il est impensable de les sauvegarder à chaque fois.

Donc nous allons ouvrir un fichier  appelé « .gitignore » et y inscrire ces quelques lignes :


#  archives ignore list
*.tgz
*.zip
*.gz
#ignore hidden file
.*

# mais pas ce fichier car utile
!.gitignore

Cette fois, « git status » ne contient seulement ce que nous voulons :


.gitignore
document1.doc
exemple1.exemple
exemple2.exemple
file1.yml
file2.yml
file3.yml
file4.yml
file5.yml
file6.yml
image1.jpg
image2.png
script.sh
texte1.txt
texte2.txt
texte3.txt

Pour aller au bout de l’exemple, voici les quelques commandes pour que votre dépôt soit utile :

  • « git add . » : ajoutera tous les fichiers listés ci-dessous dans la liste des fichiers versionnés.
  • « git commit -a » : valide le changement. Vous devrez obligatoirement mettre un commentaire, même succin, sinon Git vous bloquera. Il est conçu pour travailler à plusieurs et les commentaires sont à la base d’un bon travail d’équipe.
  • « git checkout nom_du_fichier » : restaurer nom_du_fichier depuis le dépôt, si par malheur vous l’avez détruit dans votre répertoire principal. C’est vraiment aussi simple que ça.
  • « git push » : envoie les changements locaux vers un dépôt distant. Plus d’informations ici car cela sort de notre objectif mais c’est une précaution demandant un faible investissement et pouvant vous sauver la mise. Faites-vous ce cadeau : vous le méritez !

Bien sûr, ces commandes (add, commit, push… ) gagneront à être placées dans un script, lui-même planifié tous les jours.

Ainsi, vous pourrez travailler en sécurité sans même y penser.

 

Des problèmes ? des questions ? Exprimez-vous ! Les commentaires sont ouverts. Coquilles et fautes de grammaires sont notre lot quotidien : signalez-les nous à m.capello@dbsqware.com