Git et la théorie des graph

Git et la théorie des graph

88b8138397e1d1441f4e4a54348bde09?s=128

ubermuda

June 24, 2014
Tweet

Transcript

  1. Git et la théorie des graphs Geoffrey Bachelet – @ubermuda

    All your rebase are belong to us
  2. Freelance Symfony2 Devops @ubermuda Auteur Développeur Formateur

  3. La théorie des graphs

  4. Seven bridges of Königsberg

  5. Seven bridges of Königsberg Traverser chaque pont de Königsberg Une

    et une seule fois
  6. None
  7. Leonhard Euler lol noobs.

  8. http://fr.wikipedia.org/wiki/Probl%C3%A8me_des_sept_ponts_de_K%C3%B6nigsberg

  9. http://fr.wikipedia.org/wiki/Probl%C3%A8me_des_sept_ponts_de_K%C3%B6nigsberg graph

  10. Un graphe est une collection d'éléments mis en relation entre

    eux. ! ... ! Selon que l'on choisit d'orienter les arêtes ou de leur attribuer un poids (un coût de passage), on parle de graphes orientés ou de graphes pondérés. http://www.futura-sciences.com/magazines/mathematiques/infos/dico/d/mathematiques-theorie-graphes-4712/ www.futura-sciences.com Définition
  11. Git ?!?!?!?!

  12. A B E D C

  13. A B E D C Noeuds

  14. A B E D C Arêtes

  15. A B E D C Graph orienté

  16. A B E D C Graph orienté

  17. Atteignabilité (reachability)

  18. A B E D C Atteignabilité

  19. Atteignabilité C est atteignable depuis E A B E D

    C
  20. Atteignabilité NOPE A B E D C

  21. A B D E C Atteignabilité F

  22. A B D E C Atteignabilité F D n'est pas

    atteignable depuis F
  23. Atteignabilité

  24. Qu'est-ce qu'une branche ?

  25. $  ls  .git/refs/heads/   master   ! $  cat  .git/refs/heads/master

      58bd01cded7904f1596cb12aac1d3e0e8ae6b558
  26. $  git  log  -­‐-­‐format="%H"   6465a2cd4d6d3b0a0a62588eeb5b798bb7d31a71   7d1d4dabc49854a0807200361731446476565094   17a59ceda9b2806e2a135df039506d1ec1a976e6

      ...
  27. $  echo  "6465a2cd4d6d3b0a0a62588eeb5b798bb7d31a71"  \     >  .git/refs/heads/foo

  28. $  git  branch   *  master      foo

  29. $  git  branch   *  master      foo

  30. A B D E C F master foo

  31. A B D E C F master foo Atteignabilité !

  32. Qu'est-ce qu'un merge ?

  33. A B D E C F master foo $  git

     merge  master  foo
  34. A B D E C F master foo Atteignabilité !

    G
  35. fast-forward ?

  36. A B C E D origin/master master F

  37. A B C E D origin/master master F $  git

     merge  origin/master Atteignable !
  38. C E D origin/master master F master $  git  merge

     origin/master A B
  39. cherry-pick ?

  40. A B D E C F master foo $  git

     checkout  foo   $  git  cherry  pick  F
  41. master foo F' $  git  checkout  foo   $  git

     cherry  pick  F A B D E C F master foo
  42. rebase ?

  43. $  git  checkout  foo   $  git  rebase  master A

    B D E C F master foo
  44. B merge base $  git  checkout  foo   $  git

     rebase  master A D E C F master foo
  45. merge base ! premier ancêtre commun

  46. A B D E C F master foo Atteignable !

  47. A B D E C F master foo C' $

     git  checkout  foo   $  git  rebase  master
  48. A B D E C F master foo C' D'

    $  git  checkout  foo   $  git  rebase  master
  49. A B D E C F master foo C' D'

    foo $  git  checkout  foo   $  git  rebase  master
  50. A B D E C F master C' D' foo

    ??? $  git  checkout  foo   $  git  rebase  master
  51. A B D E C F master C' D' foo

    Headless $  git  checkout  foo   $  git  rebase  master
  52. Headless non-atteignable depuis une référence susceptible d'être "garbage collecté"

  53. A B D E C F master C' D' foo

    $  git  reset  -­‐-­‐hard  D foo A B D E C F C' D'
  54. fetch

  55. A B C D master A B master origin local

    origin/master
  56. A B C D master A B master origin local

    C D origin/master FETCH !
  57. A B C D master A B master origin local

    C D origin/master
  58. push

  59. A B C master A B master origin local D

  60. A B C master A B master origin local D

    D
  61. A B C master A B master origin local D

    D A B C master A B master D D
  62. A B C master A B master origin local D

    D A B C master A B master D D NOPE
  63. Geoffrey Bachelet – @ubermuda http:/ /stage1.io/ https://speackerdeck.com/ubermuda/git-et-la-theorie-des-graph