• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
The Basics of Open Source Collaboration With Git and GitHub
 

The Basics of Open Source Collaboration With Git and GitHub

on

  • 3,097 views

A revised/minimized version of Nick Quaranto's (http://www.slideshare.net/qrush ) presentation on the same topic. This revised version was used to present Git to a group of students at ECPI who were ...

A revised/minimized version of Nick Quaranto's (http://www.slideshare.net/qrush ) presentation on the same topic. This revised version was used to present Git to a group of students at ECPI who were not yet familiar with the concepts of version control or Git.

Statistics

Views

Total Views
3,097
Views on SlideShare
3,070
Embed Views
27

Actions

Likes
1
Downloads
18
Comments
0

4 Embeds 27

http://www.slideshare.net 11
http://coderwall.com 8
http://www.linkedin.com 7
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    The Basics of Open Source Collaboration With Git and GitHub The Basics of Open Source Collaboration With Git and GitHub Presentation Transcript

    • Open Source Collaboration with Git and GitHub by Benjamin Young adapted from work by Nick Quaranto
    • whoami • President of BigBlueHat – a web manufacturing company – we build web stuff • We built BlueInk – a content management system • Building sites since the late 90's – I remember Netscape 3
    • Ve rs io n Co ntro l c o uld s a v e y o ur life .
    • Or a t le a s t y o ur jo b/pro je c t/ide a / s a nity /g pa
    • The Basics • Keep “backup” copies of files whenever you want • Restore those copies quickly and easily • Share the files and the change s with other developers • Integrate their changes into your files
    • Directed Acyclic Graph
    • Git Internals: Blobs main.c 457aef 93f f 7f f bb289f 7e1384f 900679eac f 044a
    • Git Internals: Trees
    • Git Internals: Commits
    • Git Internals: Commits
    • Giting Started • mkdir new_proj • cd old_proj • cd new_proj • git init • git init • git add . • ...do some work... • git commit • git add . • git commit
    • The Staging Area
    • What's changed? git status On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: index.php #
    • What's changed? (cont) git diff diff --git a/index.php b/index.php index 9e7353c..1764d3e 100644 --- a/index.php +++ b/index.php @@ -24,4 +24,5 @@ require_once 'webroot'.DIRECTORY_SEPARATOR.'index.php'; -?> No newline at end of file +echo 'an example change'; +?>
    • Birds Eye View • git log • gitk – a graphical view of your repository • GitX – Mac OS X app for doing the above – also handy for commit review – prettier than gitk
    • Git Internals: Branches branchna me HEAD
    • Branching
    • Branching • Another great reason to use Version Control—particularly git • “Your first idea is never your best idea” • Branches give you the freedom to change things...whenever
    • Branching (cont) • git branch experimental – creates a branch named 'experimental' • git branch – shows a list of branches: • git checkout experimental – switch to the new branch
    • The Staging Area (cont) • All that happened in the same directory – sort of... • Your version histories actually in the .git folder • so, when you checkout a branch git changes all the files outside of .git to match that branches content • git it?
    • Put it back together again • git checkout master • git merge experimental • if all went well, then your done • if not: • git mergetool • git commit -a
    • Git Internals: Remotes branchna me remotes/server/na me HEAD
    • Local vs. Remote
    • Multiple Workflows
    • Centralized
    • Integration Manager
    • Benevolent Dictator
    • Where to Share
    • =
    • Other Hosting Options • Public Only • Public and Private – repo.or.cz – GitHub.com – Gitorious.org – CodaSet.com • Private Only – Unfuddle.com – codebasehq.com
    • 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!!
    • git log • Kudos to Sc o tt Cha c o n who made – http://git-scm.com – http://whygitisbetterthanx.com • And to Mic ha e l Ha rtl – for Building the Insoshi Social Network • Wikipedia too. nick@quaran.to byoung@bigbluehat.com http://litanyagainstfear.com http://bigbluehat.com