La gestion de sources avec GIT

5bfb729f6ac07e17c2326a7335a3f3be?s=47 yageek
November 08, 2013

La gestion de sources avec GIT

Une introduction à la gestion de sources avec git.

5bfb729f6ac07e17c2326a7335a3f3be?s=128

yageek

November 08, 2013
Tweet

Transcript

  1. 10.

    VS

  2. 13.

    GIT Mercurial Language C Python Branching Léger Lourd Hooks ✔

    ✔ Test régression linéaire ✔ ✔ Intégration SHELL ✔ ✔ Travail dans le même dossier ✔ ✗✔ Modification de l’historique ✔ ✗ Pull-request ✔ ✗
  3. 14.

    Les plus de GIT != GIT • Github • Github

    Hooks (travis-ci, basecamp) • Heroku, CloudBees, GAE
  4. 16.

    Philosophie • Interrompre son travail sans surprise à n’importe quel

    moment • Travail effectué dans le même répertoire (working dir) • Très difficile de perdre quelque chose intentionnellement • Granularité basée sur le commit.
  5. 17.

    Le commit • ensemble des modifications • date • identifiant

    unique (sha-1) • auteur • message explicatif
  6. 18.
  7. 19.

    • Le commit possède un identifiant unique basé sur le

    sha-1 • Les relations entre commits sont toujours du fils vers les parents • Le commit est la base de tout !
  8. 21.

    Historique • L’historique permet de garder une trace de toute

    l’évolution du projet • Permet de revenir à n’importe quel étape dans le passé • Un outil aussi indispensable que l’IDE.
  9. 22.

    Les branches • Permettent de sauvegarder et passer à autre

    chose • Garantissent un workflow/process cohérent • Permettent la synchronisation entre les différents participants • Favorisent le travail en parallèle
  10. 26.

    Initialiser un projet cd ~/Dev/mysuperproject git init git add .

    git commit -m "My First commit" My First commit Yannick Heinrich 23/10/2013 1a3ef5
  11. 27.

    Ajouter les modifications # Some modifications git add . git

    commit -m "Add super feature" My First commit Yannick Heinrich 23/10/2013 1a3ef5 Add super feature Yannick Heinrich 23/10/2013 3ad6f3
  12. 28.

    Corriger un bug # Create new branch git checkout -b

    bugs/cr1344042924 #Fix bug git add . git commit -m "Fix cr1344042924" #Merge with develop branch git checkout develop git merge —-no-ff develop My First commit Yannick Heinrich 23/10/2013 1a3ef5 Add super feature Yannick Heinrich 23/10/2013 3ad6f3 Fix cr1344042924 Yannick Heinrich 23/10/2013 4a9c6e Merge 4a9c6e Yannick Heinrich 23/10/2013 4a9c6e
  13. 29.

    Collaborer # Récupérer les nouvelles modifications distantes localement # La

    copie locale n'est pas modifiée git fetch origin # Récupérer les nouvelles modifications distantes et les fusionner localement git pull origin # Envoyer ses modifications locales git push origin
  14. 30.
  15. 32.

    Avancée • Cherry-picking • Recombinaison • Reflog • Stash •

    Commit partiels • Pull requests • Hooks • Submodule • Rerere • Bundle
  16. 38.

    Simplification avec git-flow # Créer une feature git flow feature

    start superfeature # Fermer/clore git flow feature finish superfeature ! # Créer un hotfix git flow hotfix start cr34433535 # Fermer/clore git flow hotfix finish cr34433535 ! # Créer une branche de support git flow support start fix prod # Fermer/clore sa feature git flow support finish fix prod http://labs.grupow.com/blog/2011/07/05/getting-started-with-git-flow