Collaboration patterns with Git and GitHub

Collaboration patterns with Git and GitHub

Video of the talk (en Français) at Nantes JUG on https://www.youtube.com/watch?v=CUsZYzvrKog

71012cb8bfc5382943c202690e3562a8?s=128

Alain Hélaïli

October 13, 2015
Tweet

Transcript

  1. 1.

    the best way to build and ship software Collaboration patterns

    with Git & GitHub a @helaili - @AlainHelaili - ! helaili@github.com
  2. 2.
  3. 3.

    the best way to build and ship software Git 3

    " “//////////////////////////////////////////////////////////////// GIT - THE STUPID CONTENT TRACKER //////////////////////////////////////////////////////////////// "GIT" CAN MEAN ANYTHING, DEPENDING ON YOUR MOOD. - RANDOM THREE-LETTER COMBINATION THAT IS PRONOUNCEABLE, AND NOT ACTUALLY USED BY ANY COMMON UNIX COMMAND. THE FACT THAT IT IS A MISPRONUNCIATION OF "GET" MAY OR MAY NOT BE RELEVANT. - STUPID. CONTEMPTIBLE AND DESPICABLE. SIMPLE. TAKE YOUR PICK FROM THE DICTIONARY OF SLANG. - "GLOBAL INFORMATION TRACKER": YOU'RE IN A GOOD MOOD, AND IT ACTUALLY WORKS FOR YOU. ANGELS SING, AND A LIGHT SUDDENLY FILLS THE ROOM. - "GODDAMN IDIOTIC TRUCKLOAD OF SH*T": WHEN IT BREAKS
  4. 4.

    the best way to build and ship software Git 4

    " • Started by Linus Torvalds 2005 (search “torvalds git” on youtube) • Easy branching and merging - content oriented, remembers origin • Small and fast - local operations, smaller repos • Distributed - VCS on my laptop, full copy incl. history • Data assurance - sha1, gpg • Staging area - crafted, meaningful commits • Free and open source - did you read the first line of this slide?
  5. 5.

    the best way to build and ship software Git lingo

    5 " # Repo % Clone & Pull ' Push ( Commit ) Diff * Branch + Merge ,-./ Rebase Disclaimer The views and opinions expressed here are those of the authors and do not necessarily reflect the official policy or position of GitHub or anybody else on the planet, including actually myself. You might be able to find somewhere someone who agrees with this statement, and this person would actually be the right one to start debating on this topic. I personally do not want to discuss this matter as we will never find a common ground. 0
  6. 7.

    the best way to build and ship software An ideal

    patch flow 7 " “(0) YOU COME UP WITH AN ITCH. YOU CODE IT UP. (1) SEND IT TO THE LIST AND CC PEOPLE WHO MAY NEED TO KNOW ABOUT THE CHANGE. (2) YOU GET COMMENTS AND SUGGESTIONS FOR IMPROVEMENTS. YOU MAY EVEN GET THEM IN A "ON TOP OF YOUR CHANGE" PATCH FORM. (3) POLISH, REFINE, AND RE-SEND TO THE LIST AND THE PEOPLE WHO SPEND THEIR TIME TO IMPROVE YOUR PATCH. GO BACK TO STEP (2). (4) THE LIST FORMS CONSENSUS THAT THE LAST ROUND OF YOUR PATCH IS GOOD. SEND IT TO THE MAINTAINER AND CC THE LIST. (5) A TOPIC BRANCH IS CREATED WITH THE PATCH AND IS MERGED TO ‘NEXT', AND COOKED FURTHER AND EVENTUALLY GRADUATES TO ‘MASTER'. - HTTPS://GITHUB.COM/GIT/GIT/BLOB/MASTER/DOCUMENTATION/SUBMITTINGPATCHES
  7. 10.

    the best way to build and ship software GitHub key

    facts 10 " FOUNDED 2008 EMPLOYEES 345 UNIVERSITIES USING GITHUB 1,000+ TOTAL 
 REGISTERED USERS 10M TOTAL REPOSITORIES 27M PAYING ORGANIZATIONS >60,000
  8. 11.
  9. 12.
  10. 13.
  11. 15.
  12. 16.
  13. 25.

    # 1 * 2 3 3 + & * 4

    5 3 3 Upstream Origin Fork
  14. 26.
  15. 27.

    # 1 * 2 3 3 + & * 4

    5 3 3 Upstream Origin Create a Feature Branch
  16. 28.
  17. 29.

    # 1 * 2 3 3 + & * 4

    5 3 3 Upstream Origin Add commits
  18. 30.

    # 1 * 2 3 3 + & * 4

    5 3 3 Upstream Origin Open a Pull Request
  19. 31.
  20. 32.

    # 1 * 2 3 3 + & * 4

    5 3 3 Upstream Origin Discuss and Review Code
  21. 33.

    # 1 * 2 3 3 & * 4 5

    3 3 Upstream Origin Merge +
  22. 34.

    # 1 * 2 3 3 + & * 4

    5 3 3 Upstream Origin Pull from Upstream Master
  23. 36.

    # 4 1 5 1 5 5 4 4 1

    1 1 1 1 Dictator Lieutenants Public contributors
  24. 37.

    # 4 1 5 1 5 5 4 4 1

    1 1 1 1 Dictator Lieutenants Public contributors 2 2 2 2 2 2 +
  25. 38.

    # 4 1 5 1 5 5 4 4 1

    1 1 1 1 Dictator Lieutenants Public contributors
  26. 40.

    # # 1 1 6 6 4 4 # 1

    1 5 5 2 2 2 2 git init toplevel … git submodule add https://octodemo.com/helaili/submodule2.git git commit -a -m "Adding submodules” git push origin master 7 7 7
  27. 44.
  28. 46.
  29. 47.
  30. 49.
  31. 50.
  32. 51.