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

La gestion de sources avec GIT

yageek
November 08, 2013

La gestion de sources avec GIT

Une introduction à la gestion de sources avec git.

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