SlideShare a Scribd company logo
GitThe fast version control systemJeroen Rosenberg jeroen.rosenberg@gmail.com
Table of contentsShort introduction to version controlVersion control systemsComparison with subversionDistributed version controlGit usageBasic operationsSolving conflictsBranching as a core conceptToolingConclusionGit - the fast version control system
Version controlShort introductionGit - the fast version control system
Version control (1)The management of changes to documents, programs, and other information stored as computer filesA system that maintains versions of files at progressive stages of development.Every fileHas a full history of changesCan be restored to any versionA communication tool, like email, but with code rather than human conversationGit - the fast version control system
Version control (2)BenefitsGit - the fast version control system
Version control (2)BenefitsAllows a team to share codeGit - the fast version control system
Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableGit - the fast version control system
Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableAllows simultaneous development of different features on the same codebaseGit - the fast version control system
Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableAllows simultaneous development of different features on the same codebaseKeeps track of all old versions of filesGit - the fast version control system
Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableAllows simultaneous development of different features on the same codebaseKeeps track of all old versions of filesPrevents work being overwrittenGit - the fast version control system
GlossarySome commonly used terms explained before moving onGit - the fast version control system
Key terms in version controlBranch acopy of a set of files under version control which may be developed at different speeds or in different waysCheckout to copy the latest version of (a file in) the repository to your working copyCommit to copy (a file in) your working copy back into the repository as a new version  Merge to combine multiple changes made to different working copies of the same files in the repositoryRepository a (shared) database with the complete revision history of all files under version controlTrunk the unique line of development that is not a branchUpdate to retrieve and integrate changes in the repository since the update.Working copy your local copies of the files under version control you want to editGit - the fast version control system
Version control systemsGit - the fast version control system
Very limited and inflexibleConcurrent Versions System (CVS)Git - the fast version control system
Very limited and inflexibleConcurrent Versions System (CVS)Fills most of the holes found in CVS, but added nothing to its development model Subversion (SVN)Git - the fast version control system
Very limited and inflexibleConcurrent Versions System (CVS)Fills most of the holes found in CVS, but added nothing to its development model Subversion (SVN)More feature rich and functionalGitGit - the fast version control system
Comparison with SVNSubversionGitGit - the fast version control system
Comparison with SVNSubversionCentralizedGitDistributedGit - the fast version control system
Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyGitDistributedBranching is very easy and is a core conceptGit - the fast version control system
Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyConflicts frequently occur and renaming is not handled wellGitDistributedBranching is very easy and is a core conceptConflicts occur less frequent, renaming is properly handledGit - the fast version control system
Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyConflicts frequently occur and renaming is not handled wellCan be slow due to network latencyGitDistributedBranching is very easy and is a core conceptConflicts occur less frequent, renaming is properly handledVery fast since less operations involve network latencyGit - the fast version control system
Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyConflicts frequently occur and renaming is not handled wellCan be slow due to network latencyCan consume quite some disk spaceGitDistributedBranching is very easy and is a core conceptConflicts occur less frequent, renaming is properly handledVery fast since less operations involve network latencyConsumes 30 times less disk spaceGit - the fast version control system
Distributed version control The new generation of version controlGit - the fast version control system
A basic, centralized version control systemUsers commit changes to the central repository and a new version is born to be checked out by other usersGit - the fast version control system
A distributed version control systemEach user has a full local copy of the repository. Users commit changes and when they want to share it, the push it to the shared repository Git - the fast version control system
Git usageBasic operationsGit - the fast version control system
Tracking a project..Git - the fast version control system
Tracking a project..Mirror the central serverAnything the main repository can do, you can do!Git - the fast version control system
Tracking a project..My project is tiny - git is overkill“Why would I carry a Swiss knife when I only want to open cans?”Git - the fast version control system
Tracking a project..Tiny projects should be scalable too!“You wouldn’t use Roman digits just because you perform calculations with small numbers, now would you?”Tiny projects may grow beyond your expectations“One day you’ll desperately need that hex wrench and you’re stuck with your plain can-opener”Git - the fast version control system
Tracking a project..Pretty straightforwarded, huh?Git - the fast version control system
Advanced committing…What if you screw up?#re-edit the metadata and update the tree$ git commit --amendor# toss your latest commit away without changing the working tree$ git reset HEAD^ Git - the fast version control system
Solving conflictsInstant mergingGit - the fast version control system
Closer look at pulling..Git - the fast version control system
Auto-merging..What actually happens…# Fetch latest changes from origin$ git fetch# Merge fetched changes into current branch$ git merge refs/heads/masterGit - the fast version control system
Auto-merging..What actually happens…Recursive merge strategy – create a merged reference tree of common ancestors for three-way merge  fewer merge conflicts
 can detect and handle renamesGit - the fast version control system
Resolving conflicts..Suppose Jeff and Dan both made changes to the same line in file…CONFLICT (content): Merge conflict in fileAutomatic merge failed; fix conflicts and then commit the result.Uh oh…. now what?Git - the fast version control system
Resolving conflicts..Well, just merge manually…# run your favourite file merge application$ git mergetool –t opendiffGit - the fast version control system
Git - the fast version control systemsource: http://gitguru.com
Resolving conflicts..…and commit!# commit to resolve the conflict$ git commitGit - the fast version control system
BranchingA core conceptGit - the fast version control system
Creating a branch..Git - the fast version control system
Creating a branch..Or create and switch to a branch based on another branch$ git checkout –b new_branch other_branchGit - the fast version control system
Some common scenarios…Git - the fast version control systemWhy would I require branching?
Scenario 1 – Interrupted workflowYou’re finished with part 1 of a new feature but you can’t continue with part 2 before part 1 is released and tested  Git - the fast version control system
Scenario 1 – Interrupted workflowYou’re finished with part 1 of a new feature but you can’t continue with part 2 before part 1 is released and tested  Git - the fast version control system
Scenario 2 – Quick fixesWhile you’re busy implementing some feature suddenly you’re being told to drop everything and fix a newly discovered bugGit - the fast version control system
Scenario 2 – Quick fixesWhile you’re busy implementing some feature suddenly you’re being told to drop everything and fix a newly discovered bugGit - the fast version control system
Git usage overviewJust to summarize…Git - the fast version control system
Git command sequenceSource: http://git.or.czGit - the fast version control system
ToolingStuck at ‘Ye Olde Terminal’? Not necessarily…Git - the fast version control system
Git UI front-endsGit - the fast version control system
 OpenInGitGuiGit - the fast version control systemFinder extension
 OpenInGitGuiGit - the fast version control systemFinder extension TortoiseGit
 Git ExtensionsWindows Explorer extensions
 OpenInGitGuiGit - the fast version control systemFinder extension TortoiseGit
 Git ExtensionsWindows Explorer extensions JGit / EGitEclipse integration
Ad

More Related Content

What's hot (20)

Git and Github
Git and GithubGit and Github
Git and Github
Teodora Ahkozidou
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram SV
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
Mohammad Imam Hossain
 
GitLab.pptx
GitLab.pptxGitLab.pptx
GitLab.pptx
LeoulZewelde1
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
Gaurav Wable
 
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 
Giới thiệu git
Giới thiệu gitGiới thiệu git
Giới thiệu git
Long Ta
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
Taisuke Inoue
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
Otto Kekäläinen
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
Md. Ahsan Habib Nayan
 
Giới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnGiới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bản
Huy Nguyen Quang
 
GitHub Presentation
GitHub PresentationGitHub Presentation
GitHub Presentation
BrianSchilder
 
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
Edureka!
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
Knoldus Inc.
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
Git
GitGit
Git
Shinu Suresh
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systems
Tim Staley
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
James Gray
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram SV
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
Mohammad Imam Hossain
 
Giới thiệu git
Giới thiệu gitGiới thiệu git
Giới thiệu git
Long Ta
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
Giới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bảnGiới thiệu Git và một số tính năng cơ bản
Giới thiệu Git và một số tính năng cơ bản
Huy Nguyen Quang
 
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
Edureka!
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
Knoldus Inc.
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systems
Tim Staley
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
James Gray
 

Similar to Git the fast version control system (20)

Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Mastering Git: Version Control for Developers
Mastering Git: Version Control for DevelopersMastering Git: Version Control for Developers
Mastering Git: Version Control for Developers
AyeshaSharif19
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
Yeasin Abedin
 
GIT_Overview.
GIT_Overview.GIT_Overview.
GIT_Overview.
Mithilesh Singh
 
Git Tutorial
Git Tutorial Git Tutorial
Git Tutorial
Ahmed Taha
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
Sahil Agarwal
 
Git 101
Git 101Git 101
Git 101
jayrparro
 
Git Demo
Git DemoGit Demo
Git Demo
Anton Heuschen
 
Git hub_pptx
Git hub_pptxGit hub_pptx
Git hub_pptx
PathanNadhiyaSulthan
 
02-version control(DevOps Series)
02-version control(DevOps Series)02-version control(DevOps Series)
02-version control(DevOps Series)
Mohammed Shaban
 
Git session 1
Git session 1Git session 1
Git session 1
Hassan Khan
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
Sergey Aganezov
 
GIT By Sivakrishna
GIT By SivakrishnaGIT By Sivakrishna
GIT By Sivakrishna
Nyros Technologies
 
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.pptgit2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
loleto7559
 
git2.ppt
git2.pptgit2.ppt
git2.ppt
MohammadSamiuddin10
 
Git and GitHUB Explanation and simple coding for CLI
Git and GitHUB Explanation and simple coding for CLIGit and GitHUB Explanation and simple coding for CLI
Git and GitHUB Explanation and simple coding for CLI
kumaresan7751
 
Overview of git
Overview of gitOverview of git
Overview of git
Ravi Ganamukhi
 
Overview of git
Overview of gitOverview of git
Overview of git
Ravi Ganamukhi
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Simplilearn
 
Mastering Git: Version Control for Developers
Mastering Git: Version Control for DevelopersMastering Git: Version Control for Developers
Mastering Git: Version Control for Developers
AyeshaSharif19
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
Yeasin Abedin
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
Sahil Agarwal
 
02-version control(DevOps Series)
02-version control(DevOps Series)02-version control(DevOps Series)
02-version control(DevOps Series)
Mohammed Shaban
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
Sergey Aganezov
 
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.pptgit2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
git2nvlkndvslnvdslnlknvdlnlvdsnlknsdvlkn.ppt
loleto7559
 
Git and GitHUB Explanation and simple coding for CLI
Git and GitHUB Explanation and simple coding for CLIGit and GitHUB Explanation and simple coding for CLI
Git and GitHUB Explanation and simple coding for CLI
kumaresan7751
 
Ad

More from Jeroen Rosenberg (8)

Cooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal ArchitectureCooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal Architecture
Jeroen Rosenberg
 
Apache Solr lessons learned
Apache Solr lessons learnedApache Solr lessons learned
Apache Solr lessons learned
Jeroen Rosenberg
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
Jeroen Rosenberg
 
Websocket on Rails
Websocket on RailsWebsocket on Rails
Websocket on Rails
Jeroen Rosenberg
 
Provisioning with Vagrant & Puppet
Provisioning with Vagrant & PuppetProvisioning with Vagrant & Puppet
Provisioning with Vagrant & Puppet
Jeroen Rosenberg
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
Jeroen Rosenberg
 
Dynamic System Configuration using SOA
Dynamic System Configuration using SOADynamic System Configuration using SOA
Dynamic System Configuration using SOA
Jeroen Rosenberg
 
Dynamic Lighting with OpenGL
Dynamic Lighting with OpenGLDynamic Lighting with OpenGL
Dynamic Lighting with OpenGL
Jeroen Rosenberg
 
Cooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal ArchitectureCooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal Architecture
Jeroen Rosenberg
 
Apache Solr lessons learned
Apache Solr lessons learnedApache Solr lessons learned
Apache Solr lessons learned
Jeroen Rosenberg
 
Provisioning with Vagrant & Puppet
Provisioning with Vagrant & PuppetProvisioning with Vagrant & Puppet
Provisioning with Vagrant & Puppet
Jeroen Rosenberg
 
Dynamic System Configuration using SOA
Dynamic System Configuration using SOADynamic System Configuration using SOA
Dynamic System Configuration using SOA
Jeroen Rosenberg
 
Dynamic Lighting with OpenGL
Dynamic Lighting with OpenGLDynamic Lighting with OpenGL
Dynamic Lighting with OpenGL
Jeroen Rosenberg
 
Ad

Recently uploaded (20)

How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 

Git the fast version control system

  • 1. GitThe fast version control systemJeroen Rosenberg [email protected]
  • 2. Table of contentsShort introduction to version controlVersion control systemsComparison with subversionDistributed version controlGit usageBasic operationsSolving conflictsBranching as a core conceptToolingConclusionGit - the fast version control system
  • 3. Version controlShort introductionGit - the fast version control system
  • 4. Version control (1)The management of changes to documents, programs, and other information stored as computer filesA system that maintains versions of files at progressive stages of development.Every fileHas a full history of changesCan be restored to any versionA communication tool, like email, but with code rather than human conversationGit - the fast version control system
  • 5. Version control (2)BenefitsGit - the fast version control system
  • 6. Version control (2)BenefitsAllows a team to share codeGit - the fast version control system
  • 7. Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableGit - the fast version control system
  • 8. Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableAllows simultaneous development of different features on the same codebaseGit - the fast version control system
  • 9. Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableAllows simultaneous development of different features on the same codebaseKeeps track of all old versions of filesGit - the fast version control system
  • 10. Version control (2)BenefitsAllows a team to share codeMaintains separate “production” versions of code that are always deployableAllows simultaneous development of different features on the same codebaseKeeps track of all old versions of filesPrevents work being overwrittenGit - the fast version control system
  • 11. GlossarySome commonly used terms explained before moving onGit - the fast version control system
  • 12. Key terms in version controlBranch acopy of a set of files under version control which may be developed at different speeds or in different waysCheckout to copy the latest version of (a file in) the repository to your working copyCommit to copy (a file in) your working copy back into the repository as a new version Merge to combine multiple changes made to different working copies of the same files in the repositoryRepository a (shared) database with the complete revision history of all files under version controlTrunk the unique line of development that is not a branchUpdate to retrieve and integrate changes in the repository since the update.Working copy your local copies of the files under version control you want to editGit - the fast version control system
  • 13. Version control systemsGit - the fast version control system
  • 14. Very limited and inflexibleConcurrent Versions System (CVS)Git - the fast version control system
  • 15. Very limited and inflexibleConcurrent Versions System (CVS)Fills most of the holes found in CVS, but added nothing to its development model Subversion (SVN)Git - the fast version control system
  • 16. Very limited and inflexibleConcurrent Versions System (CVS)Fills most of the holes found in CVS, but added nothing to its development model Subversion (SVN)More feature rich and functionalGitGit - the fast version control system
  • 17. Comparison with SVNSubversionGitGit - the fast version control system
  • 19. Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyGitDistributedBranching is very easy and is a core conceptGit - the fast version control system
  • 20. Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyConflicts frequently occur and renaming is not handled wellGitDistributedBranching is very easy and is a core conceptConflicts occur less frequent, renaming is properly handledGit - the fast version control system
  • 21. Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyConflicts frequently occur and renaming is not handled wellCan be slow due to network latencyGitDistributedBranching is very easy and is a core conceptConflicts occur less frequent, renaming is properly handledVery fast since less operations involve network latencyGit - the fast version control system
  • 22. Comparison with SVNSubversionCentralizedBranching can be a pain and is used sparinglyConflicts frequently occur and renaming is not handled wellCan be slow due to network latencyCan consume quite some disk spaceGitDistributedBranching is very easy and is a core conceptConflicts occur less frequent, renaming is properly handledVery fast since less operations involve network latencyConsumes 30 times less disk spaceGit - the fast version control system
  • 23. Distributed version control The new generation of version controlGit - the fast version control system
  • 24. A basic, centralized version control systemUsers commit changes to the central repository and a new version is born to be checked out by other usersGit - the fast version control system
  • 25. A distributed version control systemEach user has a full local copy of the repository. Users commit changes and when they want to share it, the push it to the shared repository Git - the fast version control system
  • 26. Git usageBasic operationsGit - the fast version control system
  • 27. Tracking a project..Git - the fast version control system
  • 28. Tracking a project..Mirror the central serverAnything the main repository can do, you can do!Git - the fast version control system
  • 29. Tracking a project..My project is tiny - git is overkill“Why would I carry a Swiss knife when I only want to open cans?”Git - the fast version control system
  • 30. Tracking a project..Tiny projects should be scalable too!“You wouldn’t use Roman digits just because you perform calculations with small numbers, now would you?”Tiny projects may grow beyond your expectations“One day you’ll desperately need that hex wrench and you’re stuck with your plain can-opener”Git - the fast version control system
  • 31. Tracking a project..Pretty straightforwarded, huh?Git - the fast version control system
  • 32. Advanced committing…What if you screw up?#re-edit the metadata and update the tree$ git commit --amendor# toss your latest commit away without changing the working tree$ git reset HEAD^ Git - the fast version control system
  • 33. Solving conflictsInstant mergingGit - the fast version control system
  • 34. Closer look at pulling..Git - the fast version control system
  • 35. Auto-merging..What actually happens…# Fetch latest changes from origin$ git fetch# Merge fetched changes into current branch$ git merge refs/heads/masterGit - the fast version control system
  • 36. Auto-merging..What actually happens…Recursive merge strategy – create a merged reference tree of common ancestors for three-way merge fewer merge conflicts
  • 37. can detect and handle renamesGit - the fast version control system
  • 38. Resolving conflicts..Suppose Jeff and Dan both made changes to the same line in file…CONFLICT (content): Merge conflict in fileAutomatic merge failed; fix conflicts and then commit the result.Uh oh…. now what?Git - the fast version control system
  • 39. Resolving conflicts..Well, just merge manually…# run your favourite file merge application$ git mergetool –t opendiffGit - the fast version control system
  • 40. Git - the fast version control systemsource: http://gitguru.com
  • 41. Resolving conflicts..…and commit!# commit to resolve the conflict$ git commitGit - the fast version control system
  • 42. BranchingA core conceptGit - the fast version control system
  • 43. Creating a branch..Git - the fast version control system
  • 44. Creating a branch..Or create and switch to a branch based on another branch$ git checkout –b new_branch other_branchGit - the fast version control system
  • 45. Some common scenarios…Git - the fast version control systemWhy would I require branching?
  • 46. Scenario 1 – Interrupted workflowYou’re finished with part 1 of a new feature but you can’t continue with part 2 before part 1 is released and tested Git - the fast version control system
  • 47. Scenario 1 – Interrupted workflowYou’re finished with part 1 of a new feature but you can’t continue with part 2 before part 1 is released and tested Git - the fast version control system
  • 48. Scenario 2 – Quick fixesWhile you’re busy implementing some feature suddenly you’re being told to drop everything and fix a newly discovered bugGit - the fast version control system
  • 49. Scenario 2 – Quick fixesWhile you’re busy implementing some feature suddenly you’re being told to drop everything and fix a newly discovered bugGit - the fast version control system
  • 50. Git usage overviewJust to summarize…Git - the fast version control system
  • 51. Git command sequenceSource: http://git.or.czGit - the fast version control system
  • 52. ToolingStuck at ‘Ye Olde Terminal’? Not necessarily…Git - the fast version control system
  • 53. Git UI front-endsGit - the fast version control system
  • 54. OpenInGitGuiGit - the fast version control systemFinder extension
  • 55. OpenInGitGuiGit - the fast version control systemFinder extension TortoiseGit
  • 56. Git ExtensionsWindows Explorer extensions
  • 57. OpenInGitGuiGit - the fast version control systemFinder extension TortoiseGit
  • 58. Git ExtensionsWindows Explorer extensions JGit / EGitEclipse integration
  • 59. ConclusionWhy switch to Git?Git - the fast version control system
  • 60. Reasons to switch to GitEndless, easy, non-file-system-based, local branchesEnhanced merging strategy PerformanceAdvanced features enable better workflowStashing temporary workCollaboration before public commitsGit - the fast version control system
  • 61. Closing and Q&AReferencesGit: http://git-scm.com/downloadGit Docs: http://git-scm.com/documentationGitX: http://gitx.frim.nl/TortoiseGit: http://code.google.com/p/tortoisegit/Git Extensions: http://sourceforge.net/projects/gitextensions/JGit / EGit: http://www.eclipse.org/egit/Git - the fast version control system