SlideShare a Scribd company logo
1 of 11
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/

More Related Content

What's hot

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 levelsGorav Singal
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITWong Hoi Sing Edison
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hubNaveen 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, TrivandrumAbhijitNarayan2
 
Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for EveryoneGLC Networks
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucketMedhat Dawoud
 
Git Everyday
Git EverydayGit Everyday
Git EverydayPerforce
 
کنترل ورژن گیت
کنترل ورژن گیتکنترل ورژن گیت
کنترل ورژن گیتShiraz LUG
 
git-and-bitbucket
git-and-bitbucketgit-and-bitbucket
git-and-bitbucketazwildcat
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucketSumin Byeon
 
Contributing to open source using Git
Contributing to open source using GitContributing to open source using Git
Contributing to open source using GitYan Vugenfirer
 
Session: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowSession: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowMidhun Mohanan
 

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
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GIT
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
 
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
 
Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for Everyone
 
Git n git hub
Git n git hubGit n git hub
Git n git hub
 
1 git-overview
1 git-overview1 git-overview
1 git-overview
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
 
Git & GitHub N00bs
Git & GitHub N00bsGit & GitHub N00bs
Git & GitHub N00bs
 
What is git
What is gitWhat is git
What is git
 
Bitbucket
BitbucketBitbucket
Bitbucket
 
کنترل ورژن گیت
کنترل ورژن گیتکنترل ورژن گیت
کنترل ورژن گیت
 
git-and-bitbucket
git-and-bitbucketgit-and-bitbucket
git-and-bitbucket
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Contributing to open source using Git
Contributing to open source using GitContributing to open source using Git
Contributing to open source using Git
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
 
Session: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowSession: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow Workflow
 

Similar to Davinci git brown_bag

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 ControlGiuseppe Masetti
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIsTim Osborn
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-trainingEric 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 CommandsJeremy 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 GitHubKim 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 configurationKishor Kumar
 
git and github-1.pptx
git and github-1.pptxgit and github-1.pptx
git and github-1.pptxtnscharishma
 
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 GitGeoff Hoffman
 
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 GitHubBigBlueHat
 

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)
 
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
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Demo
DemoDemo
Demo
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Git
GitGit
Git
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
 
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
 
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
 
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
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
git and github-1.pptx
git and github-1.pptxgit and github-1.pptx
git and github-1.pptx
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
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
 
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
 

More from Jason Noble

More from Jason Noble (17)

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

Davinci git brown_bag

  • 1. Git and Github.com Jason Noble instructor@jasonnoble.org
  • 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/