SlideShare a Scribd company logo
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
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
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
The Basics of Open Source Collaboration With Git and GitHub
=
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
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
Ad

Recommended

Git, GitHub and Open Source
Git, GitHub and Open Source
Lorna Mitchell
 
Github Case Study By Amil Ali
Github Case Study By Amil Ali
AmilAli1
 
GitHub Basics - Derek Bable
GitHub Basics - Derek Bable
"FENG "GEORGE"" YU
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1
Omar Fathy
 
Introduction to GitHub
Introduction to GitHub
Nishan Bose
 
Introduction to github slideshare
Introduction to github slideshare
Rakesh Sukumar
 
Git and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Workshop on Git and GitHub
Workshop on Git and GitHub
DSCVSSUT
 
Github
Github
MeetPatel710
 
Introduction to Git and Github
Introduction to Git and Github
Houari ZEGAI
 
HacktoberFest-Git&GitHub
HacktoberFest-Git&GitHub
GDSCIIITBbsr
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Introduction to git and github
Introduction to git and github
Aderemi Dadepo
 
Introduction to git
Introduction to git
Shilu Shrestha
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Intro to Git and GitHub
Intro to Git and GitHub
Uri Goldstein
 
Git 101
Git 101
jayrparro
 
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
 
Git n git hub
Git n git hub
Jiwon Baek
 
Git and GitHub crash course
Git and GitHub crash course
Mireia Sangalo
 
GitHub
GitHub
ThomasLai27
 
git and github
git and github
Darren Oakley
 
Introduction to git administration
Introduction to git administration
Shawn Doyle
 
Git in 10 minutes
Git in 10 minutes
Safique Ahmed Faruque
 
Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2
Omar Fathy
 
Introduction To Git
Introduction To Git
Arnaud Seilles
 
Inside GitHub
Inside GitHub
err
 
Git basic
Git basic
Emran Ul Hadi
 
Git installation and configuration
Git installation and configuration
Kishor Kumar
 
Git for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 

More Related Content

What's hot (20)

Github
Github
MeetPatel710
 
Introduction to Git and Github
Introduction to Git and Github
Houari ZEGAI
 
HacktoberFest-Git&GitHub
HacktoberFest-Git&GitHub
GDSCIIITBbsr
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Introduction to git and github
Introduction to git and github
Aderemi Dadepo
 
Introduction to git
Introduction to git
Shilu Shrestha
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Intro to Git and GitHub
Intro to Git and GitHub
Uri Goldstein
 
Git 101
Git 101
jayrparro
 
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
 
Git n git hub
Git n git hub
Jiwon Baek
 
Git and GitHub crash course
Git and GitHub crash course
Mireia Sangalo
 
GitHub
GitHub
ThomasLai27
 
git and github
git and github
Darren Oakley
 
Introduction to git administration
Introduction to git administration
Shawn Doyle
 
Git in 10 minutes
Git in 10 minutes
Safique Ahmed Faruque
 
Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2
Omar Fathy
 
Introduction To Git
Introduction To Git
Arnaud Seilles
 
Inside GitHub
Inside GitHub
err
 
Git basic
Git basic
Emran Ul Hadi
 
Introduction to Git and Github
Introduction to Git and Github
Houari ZEGAI
 
HacktoberFest-Git&GitHub
HacktoberFest-Git&GitHub
GDSCIIITBbsr
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Introduction to git and github
Introduction to git and github
Aderemi Dadepo
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Intro to Git and GitHub
Intro to Git and GitHub
Uri Goldstein
 
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
 
Git and GitHub crash course
Git and GitHub crash course
Mireia Sangalo
 
Introduction to git administration
Introduction to git administration
Shawn Doyle
 
Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2
Omar Fathy
 
Inside GitHub
Inside GitHub
err
 

Similar to The Basics of Open Source Collaboration With Git and GitHub (20)

Git installation and configuration
Git installation and configuration
Kishor Kumar
 
Git for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
WSO2
 
Fundamentals and basics of Git and commands
Fundamentals and basics of Git and commands
DivyanshGupta922023
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
Git One Day Training Notes
Git One Day Training Notes
glen_a_smith
 
Techoalien git
Techoalien git
Aditya Tiwari
 
Techoalien git
Techoalien git
Aditya Tiwari
 
Techoalien git
Techoalien git
Aditya Tiwari
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Git-guidance for beginner- IT support.pptx.pptx
Git-guidance for beginner- IT support.pptx.pptx
vietnguyen1989
 
Git-guidance for beginner- IT support.pptx
Git-guidance for beginner- IT support.pptx
vietnguyen1989
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
11 git version control
11 git version control
Wasim Alatrash
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
GitHub_For_Beginners_Presentationss.pptx
GitHub_For_Beginners_Presentationss.pptx
ramyagirish78
 
git and github-1.pptx
git and github-1.pptx
tnscharishma
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
Mini git tutorial
Mini git tutorial
Cristian Lucchesi
 
Git is a distributed version control system .
Git is a distributed version control system .
HELLOWorld889594
 
Git installation and configuration
Git installation and configuration
Kishor Kumar
 
Git for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
WSO2
 
Fundamentals and basics of Git and commands
Fundamentals and basics of Git and commands
DivyanshGupta922023
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
Git One Day Training Notes
Git One Day Training Notes
glen_a_smith
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Git-guidance for beginner- IT support.pptx.pptx
Git-guidance for beginner- IT support.pptx.pptx
vietnguyen1989
 
Git-guidance for beginner- IT support.pptx
Git-guidance for beginner- IT support.pptx
vietnguyen1989
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
11 git version control
11 git version control
Wasim Alatrash
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
GitHub_For_Beginners_Presentationss.pptx
GitHub_For_Beginners_Presentationss.pptx
ramyagirish78
 
git and github-1.pptx
git and github-1.pptx
tnscharishma
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
Git is a distributed version control system .
Git is a distributed version control system .
HELLOWorld889594
 
Ad

Recently uploaded (20)

Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Ad

The Basics of Open Source Collaboration With Git and GitHub

  • 1. Open Source Collaboration with Git and GitHub by Benjamin Young adapted from work by Nick Quaranto
  • 2. 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
  • 3. Ve rs io n Co ntro l c o uld s a v e y o ur life .
  • 4. Or a t le a s t y o ur jo b/pro je c t/ide a / s a nity /g pa
  • 5. 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
  • 9. Git Internals: Blobs main.c 457aef 93f f 7f f bb289f 7e1384f 900679eac f 044a
  • 13. 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
  • 15. 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 #
  • 16. 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'; +?>
  • 17. 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
  • 20. 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
  • 21. 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
  • 22. 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?
  • 23. 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
  • 24. Git Internals: Remotes branchna me remotes/server/na me HEAD
  • 32. =
  • 38. Other Hosting Options • Public Only • Public and Private – repo.or.cz – GitHub.com – Gitorious.org – CodaSet.com • Private Only – Unfuddle.com – codebasehq.com
  • 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. 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. [email protected] [email protected] http://litanyagainstfear.com http://bigbluehat.com