Open Source Collaboration With Git And Git Hub

Post on 20-May-2015

6.133 views 6 download

Tags:

Transcript of Open Source Collaboration With Git And Git Hub

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.

nick@quaran.tohttp://litanyagainstfear.com