Open Source Collaboration With Git And Git Hub

6,584 views
6,446 views

Published on

Published in: Technology

Open Source Collaboration With Git And Git Hub

  1. 1. Open Source Collaboration with Git and GitHub Nick Quaranto
  2. 2. whoami <ul><li>4 th Year Software Engineering Major </li></ul><ul><li>From Buffalo </li></ul><ul><ul><li>Snow is awesome </li></ul></ul><ul><ul><li>Go Bills </li></ul></ul><ul><li>Rubyist </li></ul><ul><li>GitHub Blogger </li></ul>
  3. 3. Version control sucks.
  4. 4. But it doesn’t have to.
  5. 6. History
  6. 7. I'm an egoistical bastard, and I name all my projects after myself. First Linux, now git. -Linus Torvalds
  7. 8. History <ul><li>BitKeeper debacle </li></ul><ul><li>Design Goals: </li></ul><ul><ul><li>CVS as an example of what not to do </li></ul></ul><ul><ul><li>Distributed workflow </li></ul></ul><ul><ul><li>Strong safeguards against corruption </li></ul></ul><ul><ul><li>Very high performance </li></ul></ul><ul><li>In development since 2005 </li></ul>
  8. 10. Fast 1. Fast
  9. 11. Directed Acyclic Graph
  10. 12. Small 2. Small
  11. 13. Git Internals: Blobs 457aef93ff7ffbb289f7e1384f900679eacf044a main.c
  12. 14. Git Internals: Trees
  13. 15. Git Internals: Commits
  14. 16. Git Internals: Commits
  15. 17. Local 3. Local
  16. 18. The Staging Area
  17. 19. CHEAP. 4. Cheap Branching
  18. 20. Git Internals: Branches branchname HEAD
  19. 21. Branching
  20. 22. Distributed 5. Distributed
  21. 23. Git Internals: Remotes branchname HEAD remotes/server/name
  22. 24. Local vs. Remote
  23. 25. Any Workflow 6. Multiple Workflows
  24. 26. Centralized
  25. 27. Integration Manager
  26. 28. Benevolent Dictator
  27. 29. Failboat. It’s not perfect.
  28. 30. The downsides <ul><li>Complexity </li></ul><ul><li>Windows FTL </li></ul><ul><li>What's an IDE? </li></ul><ul><li>Unreadable source </li></ul><ul><li>Needs some maintenance </li></ul>
  29. 32. +
  30. 33. =
  31. 39. How to Contribute <ul><li>Fork a repository at GitHub </li></ul><ul><li>Clone and connect your local repository </li></ul><ul><li>Write tests, implement functionality </li></ul><ul><li>Commit your local changes </li></ul><ul><li>Push your changes to your fork </li></ul><ul><li>Make a pull request </li></ul><ul><li>Profit!! </li></ul>
  32. 40. Demo
  33. 41. git log <ul><li>Kudos to Scott Chacon who made </li></ul><ul><ul><li>http://git-scm.com </li></ul></ul><ul><ul><li>http://whygitisbetterthanx.com </li></ul></ul><ul><li>And to Michael Hartl </li></ul><ul><ul><li>for Building the Insoshi Social Network </li></ul></ul><ul><li>Wikipedia too. </li></ul><ul><li>[email_address] </li></ul><ul><li>http://litanyagainstfear.com </li></ul>

×