Git et les systèmes de
    gestion de versions
          Pourquoi c'est bien
          Comment s'en servir


1                               Tälk #02 - alice@pulz.fr
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
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
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
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
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
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
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
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
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
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
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
www.pulz.fr – Collectif effervescent de travailleurs indépendants




                         alice@pulz.fr

                        Source :
             http://git-scm.com/book/fr/



13                                                                 Tälk #02 - alice@pulz.fr

Git et les systèmes de gestion de versions

  • 1.
    Git et lessystè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 - Les3 é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 - Les3 é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 - Les3 é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ôtgit 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 sondé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
  • 13.
    www.pulz.fr – Collectifeffervescent de travailleurs indépendants alice@pulz.fr Source : http://git-scm.com/book/fr/ 13 Tälk #02 - alice@pulz.fr