====== Gestionnaire de version ====== En programmation, très rapidement, se pose le problème du suivi des versions du code. **__Du suivi de version des projets en général.__** En effet, lorsque l'on a un programme qui marche et que l'on veut améliorer : * comment garder la trace de la dernière bonne version au cas ou ? * comment travailler à plusieurs ou à partir de plusieurs machines ? C'est là qu'un système de gestion des versions comme GIT prend toute son importance. ===== les systèmes de gestion de version ===== Il en existe beaucoup, de CVS l’ancêtre, à GIT développé par Linux Torwalds le père de Linux, en passant par SVN qui reste actuellement le plus utilisé. Il existe aussi quelques outils en mode graphique comme GitHub. J'ai choisi GIT pour Linux Torwalds, sa compatibilité (linux, windows, raspberry), et ses performances ===== Installation ===== * [[https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git|Installation en local]] * [[http://www.pihomeserver.fr/2015/05/05/utiliser-le-raspberry-pi-comme-serveur-git-prive/|Installation en serveur sur le Raspberry]] ===== Utilisation ===== * [[https://git-scm.com/book/fr/v2|Pro Git book, written by Scott Chacon and Ben Straub]] * [[https://www.le-fab-lab.com/memo-git.html|Mémo git de Fabrice PENHOËT]] * [[http://www.linux-france.org/prj/support/outils/vi.html|Mémo Vi]] Sur le client en local : - Dans le dossier projet, initialisation du suivit **[git init]** - Consultation des modifications **[git status]** ou **[git diff]** - Consultation des versions **[git log]** - Indexer des fichiers au suivit **[git add */fichier]** - Désindexer des fichiers **[git reset HEAD fichier]** voir status - Suppression d'une modification **[git checkout -- fichier]** voir status - Sauvegarde/correction d'une version **[git commit [--amend]]** - Création d'une branche **[git branch branche]** - Repositionnement sur une branche **[git checkout branche]** Sur le client avec le serveur - Lien (consulter/ajouter) avec serveur **[git remote [add depot git@addrip:/url/git/projet.git]]** - Sauvegarde sur serveur **[git push depot branche]** - Récupération des dernières modifications **[git pull depot branche]** - Cloner un nouveau projet en local **[git clone git@addrip:/url/git/projet.git]** Sur le serveur : * Création d'un nouveau dossier projet **[mkdir projet.git]** * Dans le dossier, initialisation de la structure vide **[git init --bare]** ======Projets suivis====== * [[:esp-01_regul_fp|caddr]] : gestion à distance du chauffage par fil pilote * clgma : Outil de suivit de la difficulté scolaire au collège * [[:capteur_co2_connecte|esp_ap]] : Capteur à base de ESP8266 auto configurable * [[:freecad_college|FreeCAD]] Sauvegarde des ressources collège * [[:freecad_mbot|mbot]] : modélisation du robot mBot sous FreeCad pour le collège * [[fl:rcs|regulsolaire]] : Gestion d'une régulation de chauffage à base de panneaux solaires * sandbox : Zone de test * [[sp:simulpicaxe|SimulPicaxe]] : Simulateur de maquette PICAXE