SlideShare a Scribd company logo
Introduction to git
RAM DWIVEDI
2/27/2018
Agenda
Introduction to Git
Git vs SVN
Pros & Cons of Git
JIRA Integration
Git Bash Demo
Source Tree Demo
Git Gotchas
Introduction to Git
History of Version Control Systems
• 1972: Source Code Control System (SCCS)
• 1982 : Revision Control System (RCS)
• 1986 : Concurrent Version Systems (CVS)
• 2000 : Apache Subversion (SVN)
• 2005 : Bazaar, Mercurial, Git
Introduction to Git
About Git
• Created in 2005 by Linus Torvalds, creator of Linux kernel
• man describes git as “the stupid content tracker”
• Designed to be a distributed system with focus on performance, created for Linux kernel
development
• Strong support for non-linear development : Very lightweight branches
Introduction to Git
Storage Pattern
Other VCS store data as changes to a file
Introduction to Git
Storage Pattern
GIT stores data as snapshots of project over time
SVN vs GIT
SVN Git
Centralized Version Control Distributed Version Control
History on central server Everyone has local copy of entire work’s history
Branches are heavy Branches are light-weight
Branches are always central Branches can be only local
Allows partial tree checkout Checkout is always of entire repo
Version control cant be offline Version control can be offline
Short and unique version numbers Revisions are 40 character hexadecimal string
Most operations connect to centralized server Nearly every operation is local
Generally Standardized workflows More workflows can be created
Easier to learn Steeper learning curve
Supports pre, post commit hooks Support pre, post commit hooks
Better UI tools Not that great UI tools
Stores as uncompressed copies Stores as compressed objects
SVN vs GIT
LifeCycle of files in GIT
GIT : Pros and Cons
Pros Cons
- Branching is easy and cheap
- Faster
- Local operations (including diff, log, etc)
- Must commit whole tree
- Steep learning curve
GIT Best Practices
- Use SSH to connect to GIT over HTTP
- Use GIT BASH CLI over source tree, as that can be confusing
- Use a “Sandbox” repo for trying new commands
- Be cautious about commands being run. History can be modified and files permanently deleted
- Always always always, pull before push
- Create feature branch per story
- Use pull requests for code review
- Merge and delete feature branches on completion of stories
- Configure webhooks to trigger Jenkins / CI
- Disable force push in GitHub/ BitBucket
Git Branching Strategy
Multiple branching strategies are supported in Git.
- Centralized Workflow
- Feature Branch Workflow (My recommendation for most Agile teams)
- Gitflow Workflow
- Forking Gitflow
GIT Live Demo
References
• https://www.atlassian.com/git
• https://git-scm.com/book/en/v2
• https://dzone.com/refcardz/git-patterns-and-anti-patterns?chapter=1
• https://www.atlassian.com/git/tutorials/comparing-workflows
• http://endoflineblog.com/gitflow-considered-harmful
Thank You!
And Good luck gitting!

More Related Content

What's hot

Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
Gorav Singal
 
Source control system SVN, QLIKVIEW & GIT
Source control system SVN, QLIKVIEW & GITSource control system SVN, QLIKVIEW & GIT
Source control system SVN, QLIKVIEW & GIT
Satish C Ayappan
 
Managing replication of PostgreSQL, Simon Riggs
Managing replication of PostgreSQL, Simon RiggsManaging replication of PostgreSQL, Simon Riggs
Managing replication of PostgreSQL, Simon Riggs
Fuenteovejuna
 
Git basic
Git basicGit basic
Git basic
saif shobuz
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GIT
Wong Hoi Sing Edison
 
1 git-overview
1 git-overview1 git-overview
1 git-overview
ahmadezzeir
 
Git SCM
Git SCMGit SCM
Git presentation
Git presentationGit presentation
Git presentation
jordimash
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
LearningTech
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
Sean Cohen
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Nguyen Van Hung
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
Suhas Shivaram
 
Fundamentals of Git
Fundamentals of GitFundamentals of Git
Fundamentals of Git
cmckni3
 
Advanted git
Advanted git Advanted git
Advanted git
Sahil Gupta
 
HLayer / Kubernetes for CI/CD
HLayer / Kubernetes for CI/CDHLayer / Kubernetes for CI/CD
HLayer / Kubernetes for CI/CD
Aymen EL Amri
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
kyleburton
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
Bergamo Linux Users Group
 
Orchestrating Linux Containers
Orchestrating Linux ContainersOrchestrating Linux Containers
Orchestrating Linux Containers
Bergamo Linux Users Group
 
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git Basics
Sreedath N S
 
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
 

What's hot (20)

Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
 
Source control system SVN, QLIKVIEW & GIT
Source control system SVN, QLIKVIEW & GITSource control system SVN, QLIKVIEW & GIT
Source control system SVN, QLIKVIEW & GIT
 
Managing replication of PostgreSQL, Simon Riggs
Managing replication of PostgreSQL, Simon RiggsManaging replication of PostgreSQL, Simon Riggs
Managing replication of PostgreSQL, Simon Riggs
 
Git basic
Git basicGit basic
Git basic
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GIT
 
1 git-overview
1 git-overview1 git-overview
1 git-overview
 
Git SCM
Git SCMGit SCM
Git SCM
 
Git presentation
Git presentationGit presentation
Git presentation
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Fundamentals of Git
Fundamentals of GitFundamentals of Git
Fundamentals of Git
 
Advanted git
Advanted git Advanted git
Advanted git
 
HLayer / Kubernetes for CI/CD
HLayer / Kubernetes for CI/CDHLayer / Kubernetes for CI/CD
HLayer / Kubernetes for CI/CD
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
 
Orchestrating Linux Containers
Orchestrating Linux ContainersOrchestrating Linux Containers
Orchestrating Linux Containers
 
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git Basics
 
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
 

Similar to Introduction to git

Git Presentation
Git PresentationGit Presentation
Git Presentation
Prem Aseem Jain
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
Vinoth Kannan
 
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
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
Sahil Agarwal
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
Eric Guo
 
Introduction to git and stash
Introduction to git and stashIntroduction to git and stash
Introduction to git and stash
Xpand IT
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
Ovidiu Dimulescu
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
MohanRaviRohitth
 
Git 101
Git 101Git 101
Git 101
jayrparro
 
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 for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 
Lets git to it
Lets git to itLets git to it
Lets git to it
Yoram Michaeli
 
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
 
Know the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhubKnow the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhub
Edureka!
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Bartosz Chrabski
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
Aman Patial
 
Git
GitGit
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 for Windows
Git for WindowsGit for Windows
Git for Windows
Ovidiu Dimulescu
 

Similar to Introduction to git (20)

Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
 
Introduction to git and stash
Introduction to git and stashIntroduction to git and stash
Introduction to git and stash
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
 
Git 101
Git 101Git 101
Git 101
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Lets git to it
Lets git to itLets git to it
Lets git to it
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
Know the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhubKnow the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhub
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
 
Git
GitGit
Git
 
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 for Windows
Git for WindowsGit for Windows
Git for Windows
 

Recently uploaded

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 

Recently uploaded (20)

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 

Introduction to git

  • 1. Introduction to git RAM DWIVEDI 2/27/2018
  • 2. Agenda Introduction to Git Git vs SVN Pros & Cons of Git JIRA Integration Git Bash Demo Source Tree Demo Git Gotchas
  • 3. Introduction to Git History of Version Control Systems • 1972: Source Code Control System (SCCS) • 1982 : Revision Control System (RCS) • 1986 : Concurrent Version Systems (CVS) • 2000 : Apache Subversion (SVN) • 2005 : Bazaar, Mercurial, Git
  • 4. Introduction to Git About Git • Created in 2005 by Linus Torvalds, creator of Linux kernel • man describes git as “the stupid content tracker” • Designed to be a distributed system with focus on performance, created for Linux kernel development • Strong support for non-linear development : Very lightweight branches
  • 5. Introduction to Git Storage Pattern Other VCS store data as changes to a file
  • 6. Introduction to Git Storage Pattern GIT stores data as snapshots of project over time
  • 7. SVN vs GIT SVN Git Centralized Version Control Distributed Version Control History on central server Everyone has local copy of entire work’s history Branches are heavy Branches are light-weight Branches are always central Branches can be only local Allows partial tree checkout Checkout is always of entire repo Version control cant be offline Version control can be offline Short and unique version numbers Revisions are 40 character hexadecimal string Most operations connect to centralized server Nearly every operation is local Generally Standardized workflows More workflows can be created Easier to learn Steeper learning curve Supports pre, post commit hooks Support pre, post commit hooks Better UI tools Not that great UI tools Stores as uncompressed copies Stores as compressed objects
  • 8. SVN vs GIT LifeCycle of files in GIT
  • 9. GIT : Pros and Cons Pros Cons - Branching is easy and cheap - Faster - Local operations (including diff, log, etc) - Must commit whole tree - Steep learning curve
  • 10. GIT Best Practices - Use SSH to connect to GIT over HTTP - Use GIT BASH CLI over source tree, as that can be confusing - Use a “Sandbox” repo for trying new commands - Be cautious about commands being run. History can be modified and files permanently deleted - Always always always, pull before push - Create feature branch per story - Use pull requests for code review - Merge and delete feature branches on completion of stories - Configure webhooks to trigger Jenkins / CI - Disable force push in GitHub/ BitBucket
  • 11. Git Branching Strategy Multiple branching strategies are supported in Git. - Centralized Workflow - Feature Branch Workflow (My recommendation for most Agile teams) - Gitflow Workflow - Forking Gitflow
  • 13. References • https://www.atlassian.com/git • https://git-scm.com/book/en/v2 • https://dzone.com/refcardz/git-patterns-and-anti-patterns?chapter=1 • https://www.atlassian.com/git/tutorials/comparing-workflows • http://endoflineblog.com/gitflow-considered-harmful
  • 14. Thank You! And Good luck gitting!