1. Git et les systèmes de
gestion de versions
Pourquoi c'est bien
Comment s'en servir
1 Tälk #02 - alice@pulz.fr
2. De quoi s'agit-il ?
• Maintenir l'ensemble des versions d'un ou plusieurs
fichiers (exemple : l'historique Wikipedia)
• Pouvoir rappeler une version antérieure à tout
moment (révision)
• Nécessité d'utiliser un logiciel
• SVN
• Mercurial
• … ou Git
2 Tälk #02 - alice@pulz.fr
3. Intérêt
• Pouvoir travailler en équipe facilement
• Arrêter d'effacer les fichiers du collègue et perdre des
données
• Arrêter de se mélanger dans ses sauvegardes
• Arrêter de faire des bêtises sur le FTP
• Avoir une vision globale du projet
3 Tälk #02 - alice@pulz.fr
4. Git - Avantages
• Travail hors ligne, la majorité des opérations est locale
• Rapide
• La quasi totalité des actions est réversible
• Facilité dans la gestion des branches
• Facile à utiliser
4 Tälk #02 - alice@pulz.fr
5. Git - Les 3 états (1/3)
• Gestion des données en instantané (snapshot)
• Instantané = état du répertoire à un instant t
• Mini système de fichiers
• 3 états de fichiers :
• Validé : données stockées en bd locale
• Modifié : fichier modifié, pas encore validé en base
• Indexé : fichier marqué pour faire partie de la prochaine
révision
5 Tälk #02 - alice@pulz.fr
6. Git - Les 3 états (2/3)
• Répertoire git : ce qui est
copié quand on clone un
dépôt
• Répertoire de travail :
extraction unique d'une
version du projet
• Zone d'index : fichier qui
stocke les infos concernant
la prochaine révision
6 Tälk #02 - alice@pulz.fr
7. Git - Les 3 états (3/3)
• On modifie des fichiers dans son répertoire de travail
• On indexe les fichiers modifiés
• $ git add
• On valide les modifications dans la base de données du
répertoire git
• $ git commit
7 Tälk #02 - alice@pulz.fr
8. Démarrer un dépôt git existant
• $ git clone git://github.com/schacon/grit.git
• On récupère tout le repository en local
• $ git add .
• On indexe certains fichiers (ici, tous)
• $ git commit -m ''mon message de commit''
• On enregistre les changements sur le dépôt
• $ git push origin master
• On met à jour le dépôt distant, déploiement
• Si quelqu'un a modifié le projet entre temps, on tire :
• $ git pull
8 Tälk #02 - alice@pulz.fr
9. Les branches (1/2)
• Branche : diverger de la ligne principale de
développement
• Pratique pour résoudre un bug, ou quand on a une super
idée de nouveau module...
• Git privilégie la création/fusion de branches comme
méthode de travail
9 Tälk #02 - alice@pulz.fr
10. Les branches (2/2)
• Créer une branche « correctif » :
• $ git branch correctif
• $ git checkout correctif
• (ou $ git checkout -b correctif)
• On a fini de travailler sur la branche
• $ git checkout master
• $ git merge correctif
• On supprime la branche correctif
• $ git branch -d correctif
10 Tälk #02 - alice@pulz.fr
11. Conflit
• La fusion de branche n'a pas fonctionné
automatiquement : conflit de fusion
• $ git status pour voir où se trouve le conflit
• On résout le conflit
• $ git add pour marquer le fichier comme résolu
• $ git status pour vérifier que tout va bien
• On a tout cassé, besoin de revenir en urgence sur la
branche principale
• $ git stash retour à l'état d'origine
11 Tälk #02 - alice@pulz.fr
12. Où héberger son dépôt ?
• Github
• Gratuit pour l'open-source
• Joli
• Application pour Windows et Mac
• Grande communauté
• Le NAS Pülz !
• Git est installé
• Et bientôt, Gitlab (interface graphique) !
12 Tälk #02 - alice@pulz.fr