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

Introduction à Git et workflows - MarsJUG 2011

Introduction à Git et workflows - MarsJUG 2011

Jérémy Lecour

October 26, 2011
Tweet

More Decks by Jérémy Lecour

Other Decks in Technology

Transcript

  1. ATTENTION Cette présentation n’est pas : un court complet sur

    Git spécifique à Java, ni Eclipse payante un flim sur le cyclimse
  2. Définition(s) ? C'est un dispositif, en général un logiciel, qui

    permet de conserver son travail dans le temps dans toutes les versions qu'on souhaite, de naviguer dans cet historique, de gérer des divergences et convergences de variantes et de travailler en équipe sans se marcher sur les pieds.
  3. Outils connus ? CP•OLD RCS, CVS, SVN, GIT, Mercurial, Bazar,

    Darcs, GNU Arch, Fossil, Perforce, IBM Rational, Visual SourceSafe, ClearCase, … # cp main.c main.c.old
  4. intégration façon communauté developer public developer public integration manager developer

    public blessed repository developer private developer private developer private
  5. GIT est bêtement une base de données clés/valeurs écrite en

    C, donc portable et rapide qui traque des contenus
  6. delta vs. snapshot File A Δ1 File B File C

    Version 1 Version 2 Version 3 Version 4 Version 5 Δ2 Δ1 Δ2 Δ1 Δ2 Δ3 A B C Version 1 Version 2 Version 3 Version 4 Version 5 A1 B C1 A1 B C2 A2 B1 C2 A2 B2 C3 File A Δ1 File B File C Version 1 Version 2 Version 3 Version 4 Version 5 Δ2 Δ1 Δ2 Δ1 Δ2 Δ3 A B C Version 1 Version 2 Version 3 Version 4 Version 5 A1 B C1 A1 B C2 A2 B1 C2 A2 B2 C3
  7. historique commit size commit size 98ca9.. tree author committer initial

    commit of my project 0de24 Scott Scott commit size 34ac2.. tree parent author committer fixed bug #1328 - stack overflow under certain 184ca 98ca9 Scott Scott f30ab.. tree parent author committer add feature #32 - ability to add new formats to the central 34ac2 Scott Scott Snapshot A Snapshot B Snapshot C 92ec2
  8. commit • tree • blob blob size e8455.. commit size

    98ca9.. == LICENSE: (The MIT License) Copyright (c) 2007 Tom Preston- Permission is hereby granted, f ree of charge, to any person ob tree parent author committer my commit message goes here and it is really, really cool 0de24 nil Scott Scott tree size 10af9.. blob tree bc52a b70f8 mylib.rb inc tree size b70f8.. blob 0ad1a tricks.rb tree size 0de24.. blob tree e8455 10af9 README lib blob size bc52a.. require 'grit/index' require 'grit/status' module Grit class << self attr_accessor :debug blob size 0ad1a.. require 'grit/git-ruby/reposi require 'grit/git-ruby/file_i module Grit module Tricks SHA1
  9. branches & tags = pointeurs Snapshot A Snapshot B Snapshot

    C 98ca9 34ac2 f30ab master HEAD v1.0
  10. 3 zones Git Directory (Repository) Staging Area Working Directory stage

    files Checkout the project Commit Stage files
  11. commandes courantes init add rm mv status commit log diff

    show branch checkout merge tag clone fetch pull push remote reset rebase blame au moins 1x/semaine
  12. usages atypiques config système (ex. : /etc) articles et publications

    moteur de wiki documents partagés dans l’équipe distribution de ressources
  13. Time release branches master develop hot xes feature branches Feature

    for future release Tag 1.0 Major feature for next release From this point on, “next release” means the release after 1.0 Severe bug xed for production: hot x 0.2 Bug xes from rel. branch may be continuously merged back into develop Tag 0.1 Tag 0.2 Incorporate bug x in develop Only bug xes! Start of release branch for 1.0 Author: Vincent Driessen Original blog post: http://nvie.com/archives/323 License: Creative Commons
  14. Time master feature branches Author: Vincent Driessen Original blog post:

    http://nvie.com/archives/323 License: Creative Commons
  15. Articles L’article complet sur git-flow : http://nvie.com/posts/a-successful-git-branching-model/ Pourquoi vous n’utilisez

    vous toujours pas git-flow : http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/ Le workflow en vigueur chez GitHub : http://scottchacon.com/2011/08/31/github-flow.html
  16. Scott Chacon et le livre Progit pour des définitions et

    graphiques : http://progit.org/ • https://github.com/progit/progit Zach Holman pour les conseils sur la conception des slides : http://zachholman.com/posts/slide-design-for-developers/ Yanone Kafeesatz pour cette magnifique police de caractères (CC BY 2.0) : http://www.yanone.de/typedesign/kaffeesatz/ Vincent Driessen pour le graphique de git-flow : http://nvie.com/archives/323 Les différents logos, marques et noms déposés que j’ai cité