POO Avancée, Utilisation d'un framework PHP

Découverte de GIT

David Annebicque | @DavidAnnebicque

GIT

GIT est un logiciel de gestion de versions décentralisé. C’est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. En 2016, il s’agit du logiciel de gestion de versions le plus populaire qui est utilisé par plus de douze millions de personnes

GitHub, Mercurial, GitLab, Tower, ... Sont des interfaces web qui utilisent Git pour gérer les versions. On parle de "remote".

Architecture Centralisée

Architecture Décentralisée (ou distribuée)

Versionning avec GIT

Git permet :

  • De savoir qui a modifié le code
  • de travailler simultanément sur un même fichier sans risque
  • de suivre les modifications, ajouts, et suppressions
  • de savoir à quoi servent les fichiers
  • de suivre les mises à jours en fonction des bugs déclarés
  • Simplement de faire une sauvegarde de son projet

Installation et configuration

Pour fonctionner, GIT nécessite la présence d'un petit logiciel sur votre machine.

ATTENTION : Il ne faut pas confondre GIT et Github. GIT peut fonctionner très bien sans GitHub. Mais pas l'inverse.

Il est tout à fait possible d'utiliser GIT sur sa machine, simplement pour le versionning.

Télécharger GIT : https://git-scm.com/

Installation et configuration


                    git config --global color.diff auto
                    git config --global color.status auto
                    git config --global color.branch auto
                

Ces instructions permettent de rendre l'usage de la console plus agréable, en ajoutant les couleurs.

Installation et configuration

Configuration de votre pseudo (ou nom), afin de tracer les modifications.


                    git config --global user.name "votre_pseudo"
                

Configuration de votre email, également pour tracer les modifcations


                    git config --global user.email moi@email.com
                

Installation et configuration

Il faut maintenant définir dans GIT, les éléments qu'il doit surveiller. Pour cela placez vous dans un projet et executez la commande suivante pour initialiser GIT


                    git init
                

Cette commande va créer un répertoire et des fichiers cachés qui contiendront l'historique de votre projet.

Installation et configuration

Lorsque l'on souhaite repartir d'un projet déjà existant et versionné, il est possible de cloner un dépôt depuis un repository (distant ou local).


                    git clone http://github.com/symfony/symfony.git
                

Cette commande télécharger, depuis un repository sur GitHub, les sources d'un projet nommé Symfony. Un nouveau repertoire sera créé.

Utilisation de GIT

GIT est configuré et activé sur un dossier. Cependant, GIT ne surveille rien, et ne fait rien pour le moment. Plusieurs étapes sont nécessaires :

  • Surveiller votre projet
  • Ajouter des fichiers ou des répertoires
  • Sauvegarder des modifications (commit)
  • Utiliser des repository/remote

Surveiller l'activité et les modifications

A tout moment vous pouvez executer la commande suivante :


                    git status
                

Cette commande va vous indiquer l'activité de votre projet. Ce qui est modifié, ajouté et ignoré par GIT.

Surveiller l'activité et les modifications

A tout moment vous pouvez regarder les différences en executant la commande suivante :


                    git diff
                

Cette commande va vous indiquer toutes les différences entre la dernière version sauvegardée et l'actuelle, pour l'ensemble des fichiers.

Surveiller l'activité et les modifications

L'affichage précédent peut être difficile à lire, il est donc possible de regarder les différentes pour un fichier précis, en executant la commande suivante :


                    git diff /chemin/du/fichier
                

Cette commande va vous indiquer toutes les différences entre la dernière version sauvegardée et l'actuelle, pour le fichier spécifié.

Ajouter des fichiers à surveiller

Certains fichiers sont définis comme "untracked" par GIT, c'est à dire qu'il ne suit pas les modifications. Il faut donc les ajouter, si on souhaite les versionner.


                    git add nomfichier1 nomfichier2
                

Cette commande permet de versionner le fichier nomfichier1 et nomfichier2.

Ajouter des fichiers à surveiller

Il est aussi possible d'ajouter directement un répertoire.


                    git add repertoire/
                

Cette commande permet de versionner tous les fichiers contenus dans repertoire.

Ajouter des fichiers à surveiller

Il ne faut ajouter les fichiers qu'une seule fois. Ils seront ensuite toujours suivi par GIT.

Par contre il est nécessaire d'ajouter chaque nouveau fichier créé.

Sauvegarde des modifications

Maintenant que les fichiers sont suivis, on peut sauvegarder les modifications


                    git commit
                

Cette commande va sauvegarder tous les fichiers suivis et modifiés. En executant cette commande vous devrez OBLIGATOIREMENT indiquer un message pour permettre de comprendre les modifications.

Sauvegarde des modifications

Il peut parfois être intéressant de ne sauvegarder qu'une partie des modifications. Dans ce cas on peut préciser les fichiers


                    git commit nomfichier1 nomfichier2
                

Sauvegarde des modifications

On peut également inclure le message directment dans la ligne de commande


                    git commit -m "Mon message de suivi de modification"
                

Utiliser des repository/remote

On vient de voir l'intérêt d'utiliser Git. Mais pour le moment tout le suivi de version est stocké sur notre machine. Ce qui limite l'intérêt et ne permet donc pas une réelle sauvegarde de notre travail, ni même un travail collaboratif.

Pour cela, il faut passer par un remote. On peut installer son propre remote assez facilement sur un serveur, ou utiliser une solution existante : GitHub, GitLab, BitBucket, Mercurial, ...

Créer son repository

Cette solution n'est pas la seule, mais elle est la plus simple et rapide, car n'implique pas de configuration.

  • Pour cela il faut se rendre sur la solution choisie (GitHub par exemple) et créer grâce à l'interface votre repository.
  • Remplissez les informations et laissez le fichier readme.md
  • Ensuite il faut cloner ce repository sur votre machine.

Créer son repository

  • Puis déplacer votre projet dans ce nouveau répertoire
  • Ajouter les fichiers à suivre (git add)
  • Faire un COMMIT
  • Enfin envoyer les éléments sur le dépôt GitHub

Cloner un repository


                git clone lienFourniParGitHub
                

GitHub propose un lien HTTPS ou SSH pour chaque repository. Vous avez même la ligne complète de disponible à copier/coller directement dans votre console.

Une fois cloné, copier/coller votre projet dans ce repertoire. Il est maintenant associé à un remote. Vous devez dire quels sont les fichiers à suivre, et faire votre premier COMMIT.

Envoyer votre code vers un repository


                    git push origin master
                

Origin designe le remote par défaut sur lequel sera envoyé le code. Il correspond au clone fait précédemment. Master représente la "Branch" sur laquelle le code est envoyé.

Récupérer votre code depuis un repository


                    git pull origin master
                

Exercice

  • Créez votre dépôt/repository
  • Clonez le
  • Déplacez votre projet dans le nouveau répertoire
  • Ajoutez les fichiers
  • Faites votre COMMIT
  • Faites votre PUSH
  • Vérifiez sur le web votre travail.
David Annebicque | IUT De Troyes | DUT MMI | 2018