SlideShare a Scribd company logo
Git and Github.com

        Jason Noble
instructor@jasonnoble.org
What is Revision Control?
• Keeps track of changes over time
• Allows you to go back in time
• Helps prevent code from “disappearing”
Revision Control Systems
• cp –R source_dir source_dir-2013.02.20.12.18.52
• Mark Rochkind creates Source Code Control System
  (SCCS) in 1972
• Walter Tichy releases Revision Control System (RCS)
  in 1982 (still actively maintained)
• CVS introduced in 1986 (handles editing multiple
  files at once)
• Commercial systems: ClearCase, VSS and Perforce
Revision Control Systems (cont)
• Subversion (SVN) came out in 2000. Designed to be
  mostly compatible with existing CVS projects.
   – Offers atomic commits (CVS did not)
   – Keeps track of file renames and moves
   – Branching / Tagging is expensive (copies all files)
   – Tags are modifiable
Revision Control Systems (cont)
• Git introduced in 2005
  – Linux kernel used BitKeeper (commercial
    software) because it was free for OSS
  – Bitkeeper started charging, so Linus Torvalds
    wrote a compatible program (Git)
• Mercurial (similar to Git) was also created
  because of the BitKeeper license change
Features of Git
• Git has a strong emphasis on non-linear
  development
• Branching and merging is easy
• Auditing of history
  – If the code in a commit changes, the SHA-1 changes
  – Once published, it prevents history changes without
    people noticing
• Distributed Development is the #1 selling point
Git 101
• Setup central “blessed” repository
  – Each developer downloads a copy
  – Developer can do local development without
    affecting other developers
• Branching is cheap
  – git checkout -b branch_name
Getting started with Git
• mkdir test_app
• cd test_app
• vi hello_world.rb
       #!/usr/bin/env ruby
       puts “Hello World”
•   git init .
•   git status
•   git add hello_world.rb
•   git commit –m ‘Added hello_world.rb’
Github
•   Github.com is a website that hosts Git repos
•   Allows you to share your code with others
•   Easy Forking / Cloning of existing repos
•   Provides an easy to use website for hosting
    your software projects
Create New Repo on Github
• Visit https://github.com
    – Login if necessary
•   Click New Repository
•   Enter repository name, description
•   Click Create repository
•   Follow directions
Additional Hands on Training
•   Tonight from 6:30 to 8:30pm
•   Bring a laptop with Git installed
•   Signup for a Github.com account
•   Hands on instructor led tutorial
    – TAs will be available to assist
• http://www.meetup.com/DaVinci-
  Coders/events/104098422/
Ad

More Related Content

What's hot (20)

Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
Gorav Singal
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GIT
Wong Hoi Sing Edison
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
Naveen Pandey
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
AbhijitNarayan2
 
Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for Everyone
GLC Networks
 
Git n git hub
Git n git hubGit n git hub
Git n git hub
Jiwon Baek
 
1 git-overview
1 git-overview1 git-overview
1 git-overview
ahmadezzeir
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
Medhat Dawoud
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Shilu Shrestha
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
Suhas Shivaram
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
Perforce
 
Git & GitHub N00bs
Git & GitHub N00bsGit & GitHub N00bs
Git & GitHub N00bs
YasserElsnbary
 
What is git
What is gitWhat is git
What is git
ahmed fakhr
 
Bitbucket
BitbucketBitbucket
Bitbucket
Okba Mahdjoub
 
کنترل ورژن گیت
کنترل ورژن گیتکنترل ورژن گیت
کنترل ورژن گیت
Shiraz LUG
 
git-and-bitbucket
git-and-bitbucketgit-and-bitbucket
git-and-bitbucket
azwildcat
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
Sumin Byeon
 
Contributing to open source using Git
Contributing to open source using GitContributing to open source using Git
Contributing to open source using Git
Yan Vugenfirer
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
Jonathan Lawerh
 
Session: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowSession: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow Workflow
Midhun Mohanan
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
Gorav Singal
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GIT
Wong Hoi Sing Edison
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
Naveen Pandey
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
AbhijitNarayan2
 
Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for Everyone
GLC Networks
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
Medhat Dawoud
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
Perforce
 
کنترل ورژن گیت
کنترل ورژن گیتکنترل ورژن گیت
کنترل ورژن گیت
Shiraz LUG
 
git-and-bitbucket
git-and-bitbucketgit-and-bitbucket
git-and-bitbucket
azwildcat
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
Sumin Byeon
 
Contributing to open source using Git
Contributing to open source using GitContributing to open source using Git
Contributing to open source using Git
Yan Vugenfirer
 
Session: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowSession: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow Workflow
Midhun Mohanan
 

Similar to Davinci git brown_bag (20)

Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Ahmed El-Arabawy
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version Control
Giuseppe Masetti
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Nguyen Van Hung
 
Demo
DemoDemo
Demo
Miracle Anyanwu
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
Git
GitGit
Git
Keshavaprasad Bangalore Seshadri
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
Ovidiu Dimulescu
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Ovidiu Dimulescu
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
Eric Guo
 
Git Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential CommandsGit Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential Commands
Jeremy Lindblom
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet'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
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
MohanRaviRohitth
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
Kishor Kumar
 
git and github-1.pptx
git and github-1.pptxgit and github-1.pptx
git and github-1.pptx
tnscharishma
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptxIntroduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Ahmed El-Arabawy
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version Control
Giuseppe Masetti
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
Eric Guo
 
Git Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential CommandsGit Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential Commands
Jeremy Lindblom
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet'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
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
Kishor Kumar
 
git and github-1.pptx
git and github-1.pptxgit and github-1.pptx
git and github-1.pptx
tnscharishma
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptxIntroduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
Ad

More from Jason Noble (17)

Intro to TDD and BDD
Intro to TDD and BDDIntro to TDD and BDD
Intro to TDD and BDD
Jason Noble
 
Rspec 101
Rspec 101Rspec 101
Rspec 101
Jason Noble
 
Dash of ajax
Dash of ajaxDash of ajax
Dash of ajax
Jason Noble
 
jQuery Intro
jQuery IntrojQuery Intro
jQuery Intro
Jason Noble
 
Intro to Rails Give Camp Atlanta
Intro to Rails Give Camp AtlantaIntro to Rails Give Camp Atlanta
Intro to Rails Give Camp Atlanta
Jason Noble
 
Google apps
Google appsGoogle apps
Google apps
Jason Noble
 
Smarter cart
Smarter cartSmarter cart
Smarter cart
Jason Noble
 
Cart creation-101217222728-phpapp01
Cart creation-101217222728-phpapp01Cart creation-101217222728-phpapp01
Cart creation-101217222728-phpapp01
Jason Noble
 
Catalog display
Catalog displayCatalog display
Catalog display
Jason Noble
 
Validation unit testing
Validation unit testingValidation unit testing
Validation unit testing
Jason Noble
 
Creating the application
Creating the applicationCreating the application
Creating the application
Jason Noble
 
Capistrano
CapistranoCapistrano
Capistrano
Jason Noble
 
Atlanta Pm Git 101
Atlanta Pm Git 101Atlanta Pm Git 101
Atlanta Pm Git 101
Jason Noble
 
Regex Intro
Regex IntroRegex Intro
Regex Intro
Jason Noble
 
Git101
Git101Git101
Git101
Jason Noble
 
Git Atlrug
Git AtlrugGit Atlrug
Git Atlrug
Jason Noble
 
Git102
Git102Git102
Git102
Jason Noble
 
Ad

Davinci git brown_bag

  • 2. What is Revision Control? • Keeps track of changes over time • Allows you to go back in time • Helps prevent code from “disappearing”
  • 3. Revision Control Systems • cp –R source_dir source_dir-2013.02.20.12.18.52 • Mark Rochkind creates Source Code Control System (SCCS) in 1972 • Walter Tichy releases Revision Control System (RCS) in 1982 (still actively maintained) • CVS introduced in 1986 (handles editing multiple files at once) • Commercial systems: ClearCase, VSS and Perforce
  • 4. Revision Control Systems (cont) • Subversion (SVN) came out in 2000. Designed to be mostly compatible with existing CVS projects. – Offers atomic commits (CVS did not) – Keeps track of file renames and moves – Branching / Tagging is expensive (copies all files) – Tags are modifiable
  • 5. Revision Control Systems (cont) • Git introduced in 2005 – Linux kernel used BitKeeper (commercial software) because it was free for OSS – Bitkeeper started charging, so Linus Torvalds wrote a compatible program (Git) • Mercurial (similar to Git) was also created because of the BitKeeper license change
  • 6. Features of Git • Git has a strong emphasis on non-linear development • Branching and merging is easy • Auditing of history – If the code in a commit changes, the SHA-1 changes – Once published, it prevents history changes without people noticing • Distributed Development is the #1 selling point
  • 7. Git 101 • Setup central “blessed” repository – Each developer downloads a copy – Developer can do local development without affecting other developers • Branching is cheap – git checkout -b branch_name
  • 8. Getting started with Git • mkdir test_app • cd test_app • vi hello_world.rb #!/usr/bin/env ruby puts “Hello World” • git init . • git status • git add hello_world.rb • git commit –m ‘Added hello_world.rb’
  • 9. Github • Github.com is a website that hosts Git repos • Allows you to share your code with others • Easy Forking / Cloning of existing repos • Provides an easy to use website for hosting your software projects
  • 10. Create New Repo on Github • Visit https://github.com – Login if necessary • Click New Repository • Enter repository name, description • Click Create repository • Follow directions
  • 11. Additional Hands on Training • Tonight from 6:30 to 8:30pm • Bring a laptop with Git installed • Signup for a Github.com account • Hands on instructor led tutorial – TAs will be available to assist • http://www.meetup.com/DaVinci- Coders/events/104098422/