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

Open Source Collaboration with Git and GitHub

Open Source Collaboration with Git and GitHub

Super simple introduction to the concepts of Git and how to use GitHub.

Given to the RIT Society of Software Engineers in 2009. http://sse.se.rit.edu/

Eb8975af8e49e19e3dd6b6b84a542e26?s=128

Nick Quaranto

January 12, 2012
Tweet

Transcript

  1. Open Source Collaboration with Git and GitHub Nick Quaranto

  2. whoami • 4th Year Software Engineering Major • From Buffalo

    – Snow is awesome – Go Bills • Rubyist • GitHub Blogger
  3. Version control sucks.

  4. But it doesn’t have to.

  5. None
  6. History

  7. I'm an egoistical bastard, and I name all my projects

    after myself. First Linux, now git. -Linus Torvalds
  8. History • BitKeeper debacle • Design Goals: – CVS as

    an example of what not to do – Distributed workflow – Strong safeguards against corruption – Very high performance • In development since 2005
  9. None
  10. Fast 1. Fast

  11. Directed Acyclic Graph

  12. Small 2. Small

  13. Git Internals: Blobs 457aef93ff7ffbb289f7e1384f900679eacf044a main.c

  14. Git Internals: Trees

  15. Git Internals: Commits

  16. Git Internals: Commits

  17. Local 3. Local

  18. The Staging Area

  19. CHEAP. 4. Cheap Branching

  20. Git Internals: Branches branchname HEAD

  21. Branching

  22. Distributed 5. Distributed

  23. Git Internals: Remotes branchname HEAD remotes/server/name

  24. Local vs. Remote

  25. Any Workflow 6. Multiple Workflows

  26. Centralized

  27. Integration Manager

  28. Benevolent Dictator

  29. Failboat. It’s not perfect.

  30. The downsides • Complexity • Windows FTL • What's an

    IDE? • Unreadable source • Needs some maintenance
  31. None
  32. +

  33. =

  34. None
  35. None
  36. None
  37. None
  38. None
  39. How to Contribute 1. Fork a repository at GitHub 2.

    Clone and connect your local repository 3. Write tests, implement functionality 4. Commit your local changes 5. Push your changes to your fork 6. Make a pull request 7. Profit!!
  40. Demo

  41. git log • Kudos to Scott Chacon who made –

    http://git-scm.com – http://whygitisbetterthanx.com • And to Michael Hartl – for Building the Insoshi Social Network • Wikipedia too. nick@quaran.to http://litanyagainstfear.com