Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La gestion de sources avec GIT

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for yageek yageek
November 08, 2013

La gestion de sources avec GIT

Une introduction à la gestion de sources avec git.

Avatar for yageek

yageek

November 08, 2013
Tweet

More Decks by yageek

Other Decks in Programming

Transcript

  1. VS

  2. 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. Les plus de GIT != GIT • Github • Github

    Hooks (travis-ci, basecamp) • Heroku, CloudBees, GAE
  4. 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. Le commit • ensemble des modifications • date • identifiant

    unique (sha-1) • auteur • message explicatif
  6. • 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 !
  7. 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.
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. Avancée • Cherry-picking • Recombinaison • Reflog • Stash •

    Commit partiels • Pull requests • Hooks • Submodule • Rerere • Bundle
  14. 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