SlideShare a Scribd company logo
1 of 18
Git in one Evening
● Who am I, and what is my context?
● Why use version control at all?
● What are the options?
● Why choose git?
● Git basics
● Github goodies
● Git as part of your workflow
● Questions and discussion
Who am I, anyway?
● Long time developer (perl, php)
● Primarily work in Drupal
● I work with a small team – I'm the primary
back-end dev, we have one themer
● I do sometimes contribute to the Drupal
project.
Why use version control?
● Also called “revision control” or “source
control”
● Use cases (code == text files)
– Solo, CMS site building, no custom code
(useful at times)
– Solo, CMS site building, custom code (theme
files, etc.) (very useful)
– Solo or Team, custom code (essential)
– Team, CMS site building, custom code
(essential)
Version Control Options
● Old skool: CVS/SVN (client/server)
● New skool: Git, Bazaar, Mercurial (distributed)
● Git is by far the most popular, and has
become the industry standard for version
control. Used for the Linux kernel
● Mercurial is used by Python, and others
● Bazaar is used by Ubuntu, and supported by
Canonical
Distributed Version Control
● SVN (and its predecessor, CVS) had only
one repository, and it was central. You
committed code to that repository. Your
working copy is only a copy of the code, with
metadata (in the form of .svn directories).
● With distributed version control, everyone has
a repository – so every version is basically a
fork.
Distributed Version Control, cont.
● Synchronization can happen by peers
exchanging patches
● Commits, reverts, etc. are fast, because they
happen locally.
● You can work productively (like on a plane)
without having to connect to a server
● Branching and forking are a lot easier
● It is easier to contribute to open source
projects
Why Learn Git?
● It is distributed version control
● It is the most popular
● It is used for the drupal project (I notice
wordpress is still using SVN.)
● It is in increasing use in PaaS systems
(Heroku, etc.)
● You'll improve your chances of getting a job
(git knowledge is increasingly asked for.)
How to get git
● Linux
– apt-get install git (Ubuntu/Debian)
– yum install git-core (Fedora/CentOS)
– Download from http://git-scm.com/
● Mac OS X
– Graphical Git
installer:http://code.google.com/p/git-osx-
installer
– MacPorts
● Windows
– http://msysgit.github.io/
Git Tools
● IDEs/Editors that integrate with git
– Eclipse
– Netbeans
– TextMate
● Git GUIs
– Gitg
– Katana
– Others
● https://git.wiki.kernel.org/index.php/InterfacesF
rontendsAndTools
Git GUI (gitg)
Basic Git
● Creating a git repository
● Cloning a git repository
● Making changes
● Viewing status
● Staging changes
● Committing changes
● Pushing and Pulling
● Undoing mistakes
More Git Commands
● Clone a repository: ‘git clone
ssh://user@domain/repo.git’
● Add an origin: ‘git remote add <remote>
user@domain/repo.git’
● Pulling from a remote: ‘git pull <remote>
<branch>
Let’s Do It!
Git Repository Hosting
● You could theoretically do peer-to-peer, but
the standard is to have a “bare” repository
hosted somewhere
● You can easily host it yourself on a VPS
● Commercial hosting options provide goodies
– GitHub
– Bitbucket
– Others
GitHub
● github.com
● Free for open source/public projects
● Modest cost for private repository hosting
● Lots of nice goodies, including issue tracking
Git Workflow
● Depends on use case
● Teams
● Branches
● Remotes as “servers” a la cvs/svn
● Challenges integrating with DB based CMS
config changes
Got Questions?
● I might have answers
Michelle Murrain
● michelle@murrain.net
● @pearlbear on twitter
● pearlbear on d.o.

More Related Content

What's hot

Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Per Henrik Lausten
 
Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Nitya Narasimhan
 
Atomic Developer Bundle
Atomic Developer BundleAtomic Developer Bundle
Atomic Developer BundleDharmit Shah
 
Custom angular libraries
Custom angular librariesCustom angular libraries
Custom angular librariesMattVaughn9
 
Beginning python programming
Beginning python programmingBeginning python programming
Beginning python programmingkanteshraj
 
Intro to CrunchBang / Linux Fest Northwest 2013
Intro to CrunchBang / Linux Fest Northwest 2013Intro to CrunchBang / Linux Fest Northwest 2013
Intro to CrunchBang / Linux Fest Northwest 2013Larry Cafiero
 
Profile all the things! - Capital Go 2017
 Profile all the things! - Capital Go 2017 Profile all the things! - Capital Go 2017
Profile all the things! - Capital Go 2017John Potocny
 
Introduction to Vim 8.0
Introduction to Vim 8.0Introduction to Vim 8.0
Introduction to Vim 8.0k-takata
 
Debian packaging talk, Pysheff sept 2012
Debian packaging talk, Pysheff sept 2012Debian packaging talk, Pysheff sept 2012
Debian packaging talk, Pysheff sept 2012takluyver
 
Vagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easyVagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easyGeronimo Orozco
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betadigitalzombie
 
DIEMS Repository Server - GitLab
DIEMS Repository Server - GitLabDIEMS Repository Server - GitLab
DIEMS Repository Server - GitLabMayur Deshmukh
 
Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!Puppet
 

What's hot (20)

Git: be social
Git: be socialGit: be social
Git: be social
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)
 
Composer
ComposerComposer
Composer
 
Atomic Developer Bundle
Atomic Developer BundleAtomic Developer Bundle
Atomic Developer Bundle
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Custom angular libraries
Custom angular librariesCustom angular libraries
Custom angular libraries
 
DevOps Cebu Presentation
DevOps Cebu PresentationDevOps Cebu Presentation
DevOps Cebu Presentation
 
Beginning python programming
Beginning python programmingBeginning python programming
Beginning python programming
 
Intro to CrunchBang / Linux Fest Northwest 2013
Intro to CrunchBang / Linux Fest Northwest 2013Intro to CrunchBang / Linux Fest Northwest 2013
Intro to CrunchBang / Linux Fest Northwest 2013
 
Profile all the things! - Capital Go 2017
 Profile all the things! - Capital Go 2017 Profile all the things! - Capital Go 2017
Profile all the things! - Capital Go 2017
 
What the HACK is HHVM?
What the HACK is HHVM?What the HACK is HHVM?
What the HACK is HHVM?
 
Introduction to Vim 8.0
Introduction to Vim 8.0Introduction to Vim 8.0
Introduction to Vim 8.0
 
Debian packaging talk, Pysheff sept 2012
Debian packaging talk, Pysheff sept 2012Debian packaging talk, Pysheff sept 2012
Debian packaging talk, Pysheff sept 2012
 
Vagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easyVagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easy
 
Goodpractice
GoodpracticeGoodpractice
Goodpractice
 
From NodeJS to Rust
From NodeJS to RustFrom NodeJS to Rust
From NodeJS to Rust
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
DIEMS Repository Server - GitLab
DIEMS Repository Server - GitLabDIEMS Repository Server - GitLab
DIEMS Repository Server - GitLab
 
Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!
 

Similar to Git In One Evening

My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsGR8Conf
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
 
Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thHong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thWong Hoi Sing Edison
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?Leonid Mamchenkov
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopWong Hoi Sing Edison
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationLavaCon
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Samsul Ma'arif
 
Beginner walkthrough to git and github
Beginner walkthrough to git and githubBeginner walkthrough to git and github
Beginner walkthrough to git and githubMahmoud Said
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportYouSee
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with pythonroskakori
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersMartin Jinoch
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineElasTest Project
 
Puppet managed loadays
Puppet managed loadaysPuppet managed loadays
Puppet managed loadaysYankee Nemoy
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 WorkflowsRyan Street
 
Modernize Your Drupal Development
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal DevelopmentChris Tankersley
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitAmit Mathur
 
Pentester++
Pentester++Pentester++
Pentester++CTruncer
 

Similar to Git In One Evening (20)

My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thHong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8th
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source Documentation
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
 
Beginner walkthrough to git and github
Beginner walkthrough to git and githubBeginner walkthrough to git and github
Beginner walkthrough to git and github
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
Open source
Open sourceOpen source
Open source
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Puppet managed loadays
Puppet managed loadaysPuppet managed loadays
Puppet managed loadays
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
Modernize Your Drupal Development
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal Development
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
 
Pentester++
Pentester++Pentester++
Pentester++
 

More from Maxwell Pearl

Cloudcomputing.072110
Cloudcomputing.072110Cloudcomputing.072110
Cloudcomputing.072110Maxwell Pearl
 
Open Source Software You Can Use
Open Source Software You Can UseOpen Source Software You Can Use
Open Source Software You Can UseMaxwell Pearl
 
Open Source Databases Webinar
Open Source Databases WebinarOpen Source Databases Webinar
Open Source Databases WebinarMaxwell Pearl
 
Open Source Blogging Tools
Open Source Blogging ToolsOpen Source Blogging Tools
Open Source Blogging ToolsMaxwell Pearl
 
OpenOffice.Org Webinar 0208
OpenOffice.Org Webinar 0208OpenOffice.Org Webinar 0208
OpenOffice.Org Webinar 0208Maxwell Pearl
 
Foss Support Webinar0108
Foss Support Webinar0108Foss Support Webinar0108
Foss Support Webinar0108Maxwell Pearl
 

More from Maxwell Pearl (10)

Cloudcomputing.072110
Cloudcomputing.072110Cloudcomputing.072110
Cloudcomputing.072110
 
Open Source Software You Can Use
Open Source Software You Can UseOpen Source Software You Can Use
Open Source Software You Can Use
 
Drupal Webinar
Drupal WebinarDrupal Webinar
Drupal Webinar
 
Open Source Databases Webinar
Open Source Databases WebinarOpen Source Databases Webinar
Open Source Databases Webinar
 
Joomla Webinar
Joomla WebinarJoomla Webinar
Joomla Webinar
 
Open Source Blogging Tools
Open Source Blogging ToolsOpen Source Blogging Tools
Open Source Blogging Tools
 
CRM Webinar
CRM WebinarCRM Webinar
CRM Webinar
 
OpenOffice.Org Webinar 0208
OpenOffice.Org Webinar 0208OpenOffice.Org Webinar 0208
OpenOffice.Org Webinar 0208
 
Foss Support Webinar0108
Foss Support Webinar0108Foss Support Webinar0108
Foss Support Webinar0108
 
Open Standards0607
Open Standards0607Open Standards0607
Open Standards0607
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Git In One Evening

  • 1. Git in one Evening ● Who am I, and what is my context? ● Why use version control at all? ● What are the options? ● Why choose git? ● Git basics ● Github goodies ● Git as part of your workflow ● Questions and discussion
  • 2. Who am I, anyway? ● Long time developer (perl, php) ● Primarily work in Drupal ● I work with a small team – I'm the primary back-end dev, we have one themer ● I do sometimes contribute to the Drupal project.
  • 3. Why use version control? ● Also called “revision control” or “source control” ● Use cases (code == text files) – Solo, CMS site building, no custom code (useful at times) – Solo, CMS site building, custom code (theme files, etc.) (very useful) – Solo or Team, custom code (essential) – Team, CMS site building, custom code (essential)
  • 4. Version Control Options ● Old skool: CVS/SVN (client/server) ● New skool: Git, Bazaar, Mercurial (distributed) ● Git is by far the most popular, and has become the industry standard for version control. Used for the Linux kernel ● Mercurial is used by Python, and others ● Bazaar is used by Ubuntu, and supported by Canonical
  • 5. Distributed Version Control ● SVN (and its predecessor, CVS) had only one repository, and it was central. You committed code to that repository. Your working copy is only a copy of the code, with metadata (in the form of .svn directories). ● With distributed version control, everyone has a repository – so every version is basically a fork.
  • 6. Distributed Version Control, cont. ● Synchronization can happen by peers exchanging patches ● Commits, reverts, etc. are fast, because they happen locally. ● You can work productively (like on a plane) without having to connect to a server ● Branching and forking are a lot easier ● It is easier to contribute to open source projects
  • 7. Why Learn Git? ● It is distributed version control ● It is the most popular ● It is used for the drupal project (I notice wordpress is still using SVN.) ● It is in increasing use in PaaS systems (Heroku, etc.) ● You'll improve your chances of getting a job (git knowledge is increasingly asked for.)
  • 8. How to get git ● Linux – apt-get install git (Ubuntu/Debian) – yum install git-core (Fedora/CentOS) – Download from http://git-scm.com/ ● Mac OS X – Graphical Git installer:http://code.google.com/p/git-osx- installer – MacPorts ● Windows – http://msysgit.github.io/
  • 9. Git Tools ● IDEs/Editors that integrate with git – Eclipse – Netbeans – TextMate ● Git GUIs – Gitg – Katana – Others ● https://git.wiki.kernel.org/index.php/InterfacesF rontendsAndTools
  • 11. Basic Git ● Creating a git repository ● Cloning a git repository ● Making changes ● Viewing status ● Staging changes ● Committing changes ● Pushing and Pulling ● Undoing mistakes
  • 12. More Git Commands ● Clone a repository: ‘git clone ssh://user@domain/repo.git’ ● Add an origin: ‘git remote add <remote> user@domain/repo.git’ ● Pulling from a remote: ‘git pull <remote> <branch>
  • 14. Git Repository Hosting ● You could theoretically do peer-to-peer, but the standard is to have a “bare” repository hosted somewhere ● You can easily host it yourself on a VPS ● Commercial hosting options provide goodies – GitHub – Bitbucket – Others
  • 15. GitHub ● github.com ● Free for open source/public projects ● Modest cost for private repository hosting ● Lots of nice goodies, including issue tracking
  • 16. Git Workflow ● Depends on use case ● Teams ● Branches ● Remotes as “servers” a la cvs/svn ● Challenges integrating with DB based CMS config changes
  • 17. Got Questions? ● I might have answers
  • 18. Michelle Murrain ● michelle@murrain.net ● @pearlbear on twitter ● pearlbear on d.o.