SlideShare a Scribd company logo
Using Git
An intro for folk who like GUIs
What is Git?
• Git is a flavour of
  Source Control Management
  (aka revision control, version control)
• It is an open source command line tool
  with many GUIs available
• Created by Linus Torvalds to maintain the
  Linux kernal
Why use Version Control?

• Rollback to working version
• Extra redundant backups
• Keep dependencies updated
• Move towards collaborative coding
• Social proof: an extra point of presence
  (also StackExchange, StudioPress forums)
Setting Up

• Create a repo from
  scratch or by cloning
• Stage files / hunks
• Commit to the repo
The basic Git workflow
• You modify files in your working directory.
• You stage the files, adding snapshots of them
  to your staging area.
• You do a commit, which takes the files as they
  are in the staging area and stores that
  snapshot permanently to your Git directory.
  http://git-scm.com/book/en/Getting-Started-Git-Basics
Underpinnings

• Git = two 'tricks':
 • Commit blob
 • Move pointers
    (HEAD, branch)
• Theory video:
  Git For Ages 4 And Up
Committing

• "…a commit's ID is a SHA-1 hash of
  several pieces of information: the contents
  of the commit, and the IDs of its parent
  commits."
  http://think-like-a-git.net/sections/graphs-and-git/garbage-collection.html
Branch and Merge
• Testing Out Merges
   • The Scout Pattern (merge on a new
        branch)
   • The Save Point (merge on master)
   • "Black Belt" (no branches)
  http://think-like-a-git.net/sections/testing-out-merges.html
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
Terminology
•   Repository / Repo: the .git filesystem which contains the project history and
    settings
•   Staging area / index / cache: files (or 'hunks' of code) which will be committed
•   Working Copy: the directory you're working in, may not be staged or
    committed yet
•   Hash: A checksum which acts as a unique identifier for your commit. Also
    guarantees file integrity.
•   Commit: create a snapshot or restore point, to which you can return in
    future (n: the snapshot itself)
•   Checkout: sync your Working Copy with the selected commit
•   Clone: to download a copy of a repository
•   Branch: an active line of development
•   Head: a reference to the branch you're working on
•   Master: the default development branch
Terminology
•   Merge: to integrate changes from another branch into the
    current
•   Tag: a label which acts like a 'bookmark', generally used for
    tagging release versions.
•   Rebase: funky merge.. think cherry picks & hard reset: Using
    'git cherry-pick' to Simulate 'git rebase'
•   Fork: to make modifications to someone else's project
•   Push: send changes to a remote server
•   Fetch: receive changes from a remote server
•   Pull: Fetch & merge in one operation

    http://www.kernel.org/pub/software/scm/git/docs/gitglossary.html#
Free Tools

• SourceTree by Atlassian
• GitHub for Mac
• 5 Windows Git Clients To ‘Git’ The Job
  Done
Free Services

       • BitBucket
         (free / unlimited private
         repos for 5 users)
       • GitHub
         (free public repos,
         $7/mo 5 private repos)
Wordpress & Git

• The WordPress core team uses SVN
  natively, but syncs to Git every 15 minutes,
  so folk who prefer Git can follow along:

  https://github.com/WordPress/WordPress
Further Reading
• Think Like (a) Git: conversational clarity -
  the simplest read on understanding Git.
• Git Documentation: really clear, easy to
  read, the definitive resource. Free PDF
• CSStricks: Let’s Suck at GitHub Together
• CSStricks: Getting off FTP and onto Git
  Deployment with Beanstalk
memeLab.com.au

More Related Content

What's hot

Bitbucket
BitbucketBitbucket
Bitbucket
Okba Mahdjoub
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS Users
Noam Kfir
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
Nishan Bose
 
Teaching a Designer to Use GitHub
Teaching a Designer to Use GitHubTeaching a Designer to Use GitHub
Teaching a Designer to Use GitHub
Liam Dempsey
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
GoogleDevelopersStud
 
Workshop on Git and GitHub
Workshop on Git and GitHubWorkshop on Git and GitHub
Workshop on Git and GitHub
DSCVSSUT
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
jstack
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucketSumin Byeon
 
Branch to branch by Photis Patriotis
Branch to branch by Photis PatriotisBranch to branch by Photis Patriotis
Branch to branch by Photis Patriotis
Prolific Interactive
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
Krunal Doshi
 
Git 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawanGit 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawan
James Ford
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
Migrating to git
Migrating to gitMigrating to git
Migrating to gitXpand IT
 
Github
GithubGithub
Slide: Introducing GitLab by ALMtoolbox
Slide: Introducing GitLab by ALMtoolboxSlide: Introducing GitLab by ALMtoolbox
Slide: Introducing GitLab by ALMtoolbox
Noa Harel
 
Git basics
Git basicsGit basics
Git basics
Ashwin Date
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
JEMLI Fathi
 
Git workflows
Git workflowsGit workflows
Git workflowsXpand IT
 
CI/CD with Bitbucket pipelines
CI/CD with Bitbucket pipelinesCI/CD with Bitbucket pipelines
CI/CD with Bitbucket pipelines
Theophilus Omoregbee
 

What's hot (20)

Bitbucket
BitbucketBitbucket
Bitbucket
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS Users
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
 
Teaching a Designer to Use GitHub
Teaching a Designer to Use GitHubTeaching a Designer to Use GitHub
Teaching a Designer to Use GitHub
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Workshop on Git and GitHub
Workshop on Git and GitHubWorkshop on Git and GitHub
Workshop on Git and GitHub
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Branch to branch by Photis Patriotis
Branch to branch by Photis PatriotisBranch to branch by Photis Patriotis
Branch to branch by Photis Patriotis
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Git 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawanGit 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawan
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Migrating to git
Migrating to gitMigrating to git
Migrating to git
 
Github
GithubGithub
Github
 
Slide: Introducing GitLab by ALMtoolbox
Slide: Introducing GitLab by ALMtoolboxSlide: Introducing GitLab by ALMtoolbox
Slide: Introducing GitLab by ALMtoolbox
 
Git basics
Git basicsGit basics
Git basics
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Git workflows
Git workflowsGit workflows
Git workflows
 
CI/CD with Bitbucket pipelines
CI/CD with Bitbucket pipelinesCI/CD with Bitbucket pipelines
CI/CD with Bitbucket pipelines
 

Similar to Git for folk who like GUIs

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
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
Kishor Kumar
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
Joel W. King
 
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
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
PouriaQashqai1
 
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
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitRobert Lee-Cann
 
Git Introductive
Git IntroductiveGit Introductive
Git IntroductiveAdham Saad
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
atishgoswami
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
Naveen Pandey
 
Git and Github
Git and GithubGit and Github
Git and Github
Akshay Vasava
 
Git
GitGit
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
Introduction to gitIntroduction to git
Introduction to git
Nguyen Van Hung
 
Demo
DemoDemo
O365Con18 - Git and GitHub - Rick van Rousselt
O365Con18 - Git and GitHub - Rick van RousseltO365Con18 - Git and GitHub - Rick van Rousselt
O365Con18 - Git and GitHub - Rick van Rousselt
NCCOMMS
 
git and github
git and githubgit and github
git and github
Darren Oakley
 
Git training (basic)
Git training (basic)Git training (basic)
Git training (basic)
Arashdeepkaur16
 
Git hub
Git hubGit hub
Git hub
Nitin Goel
 

Similar to Git for folk who like GUIs (20)

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
 
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)
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
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
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 
Git Introductive
Git IntroductiveGit Introductive
Git Introductive
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Git
GitGit
Git
 
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
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Demo
DemoDemo
Demo
 
O365Con18 - Git and GitHub - Rick van Rousselt
O365Con18 - Git and GitHub - Rick van RousseltO365Con18 - Git and GitHub - Rick van Rousselt
O365Con18 - Git and GitHub - Rick van Rousselt
 
git and github
git and githubgit and github
git and github
 
Git training (basic)
Git training (basic)Git training (basic)
Git training (basic)
 
Git hub
Git hubGit hub
Git hub
 

Recently uploaded

Corporate Presentation Probe June 2024.pdf
Corporate Presentation Probe June 2024.pdfCorporate Presentation Probe June 2024.pdf
Corporate Presentation Probe June 2024.pdf
Probe Gold
 
Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024
CollectiveMining1
 
cyberagent_For New Investors_EN_240424.pdf
cyberagent_For New Investors_EN_240424.pdfcyberagent_For New Investors_EN_240424.pdf
cyberagent_For New Investors_EN_240424.pdf
CyberAgent, Inc.
 
New Tax Regime User Guide Flexi Plan Revised (1).pptx
New Tax Regime User Guide Flexi Plan Revised (1).pptxNew Tax Regime User Guide Flexi Plan Revised (1).pptx
New Tax Regime User Guide Flexi Plan Revised (1).pptx
RajkumarRajamanikam
 
Osisko Development - Investor Presentation - June 24
Osisko Development - Investor Presentation - June 24Osisko Development - Investor Presentation - June 24
Osisko Development - Investor Presentation - June 24
Philip Rabenok
 
Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024
CollectiveMining1
 
Snam 2023-27 Industrial Plan - Financial Presentation
Snam 2023-27 Industrial Plan - Financial PresentationSnam 2023-27 Industrial Plan - Financial Presentation
Snam 2023-27 Industrial Plan - Financial Presentation
Valentina Ottini
 
Investor Day 2024 Presentation Sysco 2024
Investor Day 2024 Presentation Sysco 2024Investor Day 2024 Presentation Sysco 2024
Investor Day 2024 Presentation Sysco 2024
Sysco_Investors
 

Recently uploaded (8)

Corporate Presentation Probe June 2024.pdf
Corporate Presentation Probe June 2024.pdfCorporate Presentation Probe June 2024.pdf
Corporate Presentation Probe June 2024.pdf
 
Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024
 
cyberagent_For New Investors_EN_240424.pdf
cyberagent_For New Investors_EN_240424.pdfcyberagent_For New Investors_EN_240424.pdf
cyberagent_For New Investors_EN_240424.pdf
 
New Tax Regime User Guide Flexi Plan Revised (1).pptx
New Tax Regime User Guide Flexi Plan Revised (1).pptxNew Tax Regime User Guide Flexi Plan Revised (1).pptx
New Tax Regime User Guide Flexi Plan Revised (1).pptx
 
Osisko Development - Investor Presentation - June 24
Osisko Development - Investor Presentation - June 24Osisko Development - Investor Presentation - June 24
Osisko Development - Investor Presentation - June 24
 
Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024Collective Mining | Corporate Presentation - May 2024
Collective Mining | Corporate Presentation - May 2024
 
Snam 2023-27 Industrial Plan - Financial Presentation
Snam 2023-27 Industrial Plan - Financial PresentationSnam 2023-27 Industrial Plan - Financial Presentation
Snam 2023-27 Industrial Plan - Financial Presentation
 
Investor Day 2024 Presentation Sysco 2024
Investor Day 2024 Presentation Sysco 2024Investor Day 2024 Presentation Sysco 2024
Investor Day 2024 Presentation Sysco 2024
 

Git for folk who like GUIs

  • 1. Using Git An intro for folk who like GUIs
  • 2. What is Git? • Git is a flavour of Source Control Management (aka revision control, version control) • It is an open source command line tool with many GUIs available • Created by Linus Torvalds to maintain the Linux kernal
  • 3. Why use Version Control? • Rollback to working version • Extra redundant backups • Keep dependencies updated • Move towards collaborative coding • Social proof: an extra point of presence (also StackExchange, StudioPress forums)
  • 4. Setting Up • Create a repo from scratch or by cloning • Stage files / hunks • Commit to the repo
  • 5. The basic Git workflow • You modify files in your working directory. • You stage the files, adding snapshots of them to your staging area. • You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory. http://git-scm.com/book/en/Getting-Started-Git-Basics
  • 6. Underpinnings • Git = two 'tricks': • Commit blob • Move pointers (HEAD, branch) • Theory video: Git For Ages 4 And Up
  • 7. Committing • "…a commit's ID is a SHA-1 hash of several pieces of information: the contents of the commit, and the IDs of its parent commits." http://think-like-a-git.net/sections/graphs-and-git/garbage-collection.html
  • 8. Branch and Merge • Testing Out Merges • The Scout Pattern (merge on a new branch) • The Save Point (merge on master) • "Black Belt" (no branches) http://think-like-a-git.net/sections/testing-out-merges.html
  • 12. Terminology • Repository / Repo: the .git filesystem which contains the project history and settings • Staging area / index / cache: files (or 'hunks' of code) which will be committed • Working Copy: the directory you're working in, may not be staged or committed yet • Hash: A checksum which acts as a unique identifier for your commit. Also guarantees file integrity. • Commit: create a snapshot or restore point, to which you can return in future (n: the snapshot itself) • Checkout: sync your Working Copy with the selected commit • Clone: to download a copy of a repository • Branch: an active line of development • Head: a reference to the branch you're working on • Master: the default development branch
  • 13. Terminology • Merge: to integrate changes from another branch into the current • Tag: a label which acts like a 'bookmark', generally used for tagging release versions. • Rebase: funky merge.. think cherry picks & hard reset: Using 'git cherry-pick' to Simulate 'git rebase' • Fork: to make modifications to someone else's project • Push: send changes to a remote server • Fetch: receive changes from a remote server • Pull: Fetch & merge in one operation http://www.kernel.org/pub/software/scm/git/docs/gitglossary.html#
  • 14. Free Tools • SourceTree by Atlassian • GitHub for Mac • 5 Windows Git Clients To ‘Git’ The Job Done
  • 15. Free Services • BitBucket (free / unlimited private repos for 5 users) • GitHub (free public repos, $7/mo 5 private repos)
  • 16. Wordpress & Git • The WordPress core team uses SVN natively, but syncs to Git every 15 minutes, so folk who prefer Git can follow along: https://github.com/WordPress/WordPress
  • 17. Further Reading • Think Like (a) Git: conversational clarity - the simplest read on understanding Git. • Git Documentation: really clear, easy to read, the definitive resource. Free PDF • CSStricks: Let’s Suck at GitHub Together • CSStricks: Getting off FTP and onto Git Deployment with Beanstalk