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

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

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.