open source collaboration with git and git hub
TRANSCRIPT
Open Source Collaboration with Git and GitHub
Nick Quaranto
whoami
• 4th Year Software Engineering Major• From Buffalo
– Snow is awesome– Go Bills
• Rubyist• GitHub Blogger
Version control sucks.
But it doesn’t have to.
History
I'm an egoistical bastard, and I name all my projects after myself.
First Linux, now git.-Linus Torvalds
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
Fast
1. Fast
Directed Acyclic Graph
Small
2. Small
Git Internals: Blobs
457aef93ff7ffbb289f7e1384f900679eacf044a
main.c
Git Internals: Trees
Git Internals: Commits
Git Internals: Commits
Local
3. Local
The Staging Area
CHEAP.
4. Cheap Branching
Git Internals: Branches
branchnamebranchname
HEADHEAD
Branching
Distributed
5. Distributed
Git Internals: Remotes
branchnamebranchname
HEADHEAD
remotes/server/nameremotes/server/name
Local vs. Remote
Any Workflow
6. Multiple Workflows
Centralized
Integration Manager
Benevolent Dictator
Failboat.
It’s not perfect.
The downsides
• Complexity• Windows FTL• What's an IDE?• Unreadable source• Needs some maintenance
+
=
How to Contribute
1. Fork a repository at GitHub 2. Clone and connect your local repository 3. Write tests, implement functionality4. Commit your local changes 5. Push your changes to your fork6. Make a pull request7. Profit!!
Demo
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.
[email protected]://litanyagainstfear.com