Système de gestion de version
GIT
Thierry GAYET – Septembre 2011
What's Github?
• A source code hoster
– Like Sourceforge or Google Code
• Github is not a replacement for CPAN
What's special about Github?
• Uses git as revision control
• Social coding
• User-centric
What's special about Github?
• “Follow” other people's projects/changes
• Low barrier to contribute (low PITA)
• Explosive growth of participation after
projects move to Github (e.g. Rails)
• Extremely well implemented
Branching/Merging, supported by Git
Why Git?
• So fast it makes your head spin (demo)
• Allows for human error (reset/combine
commits)
• Entire History Local
• Guaranteed to retrieve what people put in
• Optimized network transfers
Project Development
Project Development
Project Development
Project Development
Project Development
Create a new Project
Create a new Project
• Public repos are free (300MB)
• Private repos cost
Leave your Public Key
Boom, a new Project
Boom, a new Project
• Public clone URL:
– Git clone git://[Link]/mschilli/[Link]
• Private clone URL
– Git clone git@[Link]/mschilli/[Link]
Boom, a new Project
A Word on Naming
Conventions
• [Link]
• [Link]
• [Link]
• [Link]
“Open-Source-Dude” finds
the project
• Fork to add a feature
“Fork” isn't a Bad Word
• Here's your new fork
“Fork” isn't a Bad Word
“Fork” isn't a Bad Word
“Fork” isn't a Bad Word
“Fork” isn't a Bad Word
“Fork” isn't a Bad Word
“Fork”
“Fork” isn't
isn't aaBad
BadWord
Word
(poof)
Clone your Copy
Change
• Here's your new fork
Change
• Here's your new fork
Pull
Receive a Pull Request
Receive a Pull Request
Git Pull
What just happened?
Pull changes into local
branch
Squashed Commit
Delete Local Branch
Busy Projects
• Ruby on Rails:
– 27.3 MB
– 656 forks (!)
• Rakudo (Perl6 implementation on Parrot)
– 9 MB
– 42 forks
• YUI (Yahoo Javascript lib)
– 44 MB
– 36 forks
Github tools
• [Link]
Tell the Perl community about
it
• Write it into the [Link] ...
Tell the community about it
• ... and it shows up on CPAN
Push Github Releases to
CPAN
• How about CPAN could be triggered to
fetch new releases from Github?
Push Github Releases to
CPAN
Push Github Releases to
CPAN
Push Github Releases to
CPAN
Push Github Releases to
CPAN
Push Github Releases to
CPAN
Push Github Releases to
CPAN
References
• Slides for this talk: [Link]
• Github screencasts:
[Link]
guide-to-github
• “Version control with git”, Jon Leoliger, O'Reilly 2009
• Dan Dascalescu, "The PITA Threshold: GitHub vs.
CPAN",
[Link]
• Turn your Sourceforge Project into a Git Repo",
[Link]