SlideShare a Scribd company logo
1 of 28
Download to read offline
Let’s Git Together
GIT STRATEGIES FOR TEAMS
Me: Scott Coldwell
‣ DevOps
‣ Computer Know How
‣ Houston, TX
‣ @scottcoldwell
‣ CF dev since 2006
‣ Git since 2013
‣ 2nd ever tech presentation
‣ DO IT
‣ Track changes
‣ Backups
‣ Manage deployments
Source Control
‣ COMMUNICATION
‣ Standards
‣ Process
‣ Expectations
Source Control
‣ Branching!
‣ Forking!
‣ Pull requests!
‣ Distributedness!
‣ Conflicts!
‣ Other SC systems had (most of) these too!
The Blessings of Git
‣ Team makeup and competency
‣ Will you be the bottleneck?
‣ Who will approve code promotion?
‣ How much do you trust your developers?
Selection Criteria
‣ Business and/or Project process
‣ Ticketing system and workflow
‣ Environments - testing / staging / qa / ci / beta / etc
‣ Deployment process and schedule
‣ Automation (Continuous Integration/Delivery)
Selection Criteria
Branching Strategies
‣ Wing and a Prayer
‣ Long-Running Branches
‣ Git Flow
‣ Branch-per-Feature
Strategies
‣ Single Branch
‣ Commit when you want to
‣ Deploy with tags?
‣ Careful
‣ Unfinished code could creep in
‣ Unclear what’s in production
Wing and a Prayer
Wing and a Prayer
‣ One branch for development, one for production
‣ Cherry pick commits to deploy
‣ Tag production branch
‣ Cleaner history in Git than SVN
Long Running Branches
Long Running Branches
‣ Careful:
‣ Branches will diverge
‣ Not developing on production code
‣ Tedious to keep track of commits for a change
‣ Cumbersome to revert
Long Running Branches
‣ Long-running branches, but with merging
‣ Specific branches and rules around features,
hotfixes, bugs
‣ EVERYTHING in the develop branch WILL be
merged to master, once it is stable
‣ Pull requests are powerful
Git Flow
http://lanziani http://lanziani.com/slides/gitflow/images/
gitflow_1.png.com/slides/gitflow/images/gitflow_1.png
‣ Powerful for fast-moving teams
‣ Great separation between dev and prod
‣ Many toolsets available
‣ Much responsibility given to developers
Git Flow Pros
‣ Much responsibility given to developers
‣ Hard to pull stuff back
‣ Frustrating for project managers
‣ Limited number of environments
Git Flow Cons
‣ Master represents production
‣ Every feature and hotfix gets a branch
‣ Nothing is merged until prod deployment
‣ Utilize “throw away” branches for various
environments
‣ A build process reruns when branches are added/
removed
Branch per Feature
Branch per Feature
Branch per Feature
‣ Allows for limitless environments
‣ Restrict who can merge to master
‣ Granular control over code progression
‣ Easy to remove branches from an environment
‣ We can always deploy
BPF Pros
‣ Code conflicts can be tricky to track down
‣ Requires some automation
‣ Pull requests are used less frequently
‣ Training for team
BPF Cons
AUTOMATE
ALL THE
THINGS
‣ Team makeup and competency
‣ Will you be the bottleneck?
‣ Who will approve code promotion?
‣ How much do you trust your developers?
Selection Criteria
‣ Business and/or Project process
‣ Ticketing system and workflow
‣ Environments - testing / staging / qa / ci / beta / etc
‣ Deployment process and schedule
‣ Automation (Continuous Integration/Delivery)
Selection Criteria
‣ Git Flow
‣ http://nvie.com/posts/a-successful-git-branching-model/
‣ http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
‣ Branch per Feature
‣ https://www.acquia.com/blog/pragmatic-guide-branch-
feature-git-branching-strategy
‣ http://dymitruk.com/blog/2012/02/05/branch-per-feature/
Further Reading
Thank You

More Related Content

What's hot

What's hot (20)

Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
Can you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouCan you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and You
 
Getting Started with Docker (For Developers)
Getting Started with Docker (For Developers)Getting Started with Docker (For Developers)
Getting Started with Docker (For Developers)
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandbox
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Bring api manager into your stack
Bring api manager into your stackBring api manager into your stack
Bring api manager into your stack
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
Hidden gems in cf2016
Hidden gems in cf2016Hidden gems in cf2016
Hidden gems in cf2016
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWS
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
 
Workflows and Digital Signatures
Workflows and Digital SignaturesWorkflows and Digital Signatures
Workflows and Digital Signatures
 
Mobile Applications Made Easy with ColdFusion 11
Mobile Applications Made Easy with ColdFusion 11Mobile Applications Made Easy with ColdFusion 11
Mobile Applications Made Easy with ColdFusion 11
 
Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPL
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, Automation
 
Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...
 
Accessible Video Anywhere with ColdFusion an AWS
Accessible Video Anywhere with ColdFusion an AWSAccessible Video Anywhere with ColdFusion an AWS
Accessible Video Anywhere with ColdFusion an AWS
 
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
 
10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world
 

Viewers also liked

Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipCf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanship
ColdFusionConference
 

Viewers also liked (20)

Front end-modernization
Front end-modernizationFront end-modernization
Front end-modernization
 
Paying off-emotional-debt-2
Paying off-emotional-debt-2Paying off-emotional-debt-2
Paying off-emotional-debt-2
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaks
 
Automate all the things
Automate all the thingsAutomate all the things
Automate all the things
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using Caching
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
 
Node withoutservers aws-lambda
Node withoutservers aws-lambdaNode withoutservers aws-lambda
Node withoutservers aws-lambda
 
Building Software in a weekend
Building Software in a weekendBuilding Software in a weekend
Building Software in a weekend
 
ColdFusion builder 3 making the awesome
ColdFusion builder 3  making the awesomeColdFusion builder 3  making the awesome
ColdFusion builder 3 making the awesome
 
How we rest
How we restHow we rest
How we rest
 
Mura intergration-slides
Mura intergration-slidesMura intergration-slides
Mura intergration-slides
 
Fr sponsor talk may 2015
Fr sponsor talk may 2015Fr sponsor talk may 2015
Fr sponsor talk may 2015
 
2014 cf summit_clustering
2014 cf summit_clustering2014 cf summit_clustering
2014 cf summit_clustering
 
Getting started with mobile application development
Getting started with mobile application developmentGetting started with mobile application development
Getting started with mobile application development
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqMultiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
 
Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipCf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanship
 
Adaptive Development in a Creative World
Adaptive Development in a Creative WorldAdaptive Development in a Creative World
Adaptive Development in a Creative World
 
Java scriptconfusingbits
Java scriptconfusingbitsJava scriptconfusingbits
Java scriptconfusingbits
 
Dont throwthatout
Dont throwthatoutDont throwthatout
Dont throwthatout
 

Similar to Dev objective2015 lets git together

Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Gibran Badrulzaman
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
 

Similar to Dev objective2015 lets git together (20)

Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Next Level DevOps Implementation with GitOps
Next Level DevOps Implementation with GitOpsNext Level DevOps Implementation with GitOps
Next Level DevOps Implementation with GitOps
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
 
DevOps Service | Mindtree
DevOps Service | MindtreeDevOps Service | Mindtree
DevOps Service | Mindtree
 
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
Intro to Git for Project Managers
Intro to Git for Project ManagersIntro to Git for Project Managers
Intro to Git for Project Managers
 
Webinar: End to End Security & Operations with Chainguard and Weave GitOps
Webinar: End to End Security & Operations with Chainguard and Weave GitOpsWebinar: End to End Security & Operations with Chainguard and Weave GitOps
Webinar: End to End Security & Operations with Chainguard and Weave GitOps
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
8 Essential DevOps Tools for Salesforce
8 Essential DevOps Tools for Salesforce8 Essential DevOps Tools for Salesforce
8 Essential DevOps Tools for Salesforce
 
Make a better DevOps with GitOps
Make a better DevOps with GitOpsMake a better DevOps with GitOps
Make a better DevOps with GitOps
 
Lambda Architectures in Practice
Lambda Architectures in PracticeLambda Architectures in Practice
Lambda Architectures in Practice
 

More from ColdFusionConference

More from ColdFusionConference (19)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 
Rest ful tools for lazy experts
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy experts
 
Everyones invited! Meet accesibility requirements with ColdFusion
Everyones invited! Meet accesibility requirements with ColdFusionEveryones invited! Meet accesibility requirements with ColdFusion
Everyones invited! Meet accesibility requirements with ColdFusion
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 

Dev objective2015 lets git together

  • 1. Let’s Git Together GIT STRATEGIES FOR TEAMS
  • 2. Me: Scott Coldwell ‣ DevOps ‣ Computer Know How ‣ Houston, TX ‣ @scottcoldwell ‣ CF dev since 2006 ‣ Git since 2013 ‣ 2nd ever tech presentation
  • 3. ‣ DO IT ‣ Track changes ‣ Backups ‣ Manage deployments Source Control
  • 4. ‣ COMMUNICATION ‣ Standards ‣ Process ‣ Expectations Source Control
  • 5. ‣ Branching! ‣ Forking! ‣ Pull requests! ‣ Distributedness! ‣ Conflicts! ‣ Other SC systems had (most of) these too! The Blessings of Git
  • 6. ‣ Team makeup and competency ‣ Will you be the bottleneck? ‣ Who will approve code promotion? ‣ How much do you trust your developers? Selection Criteria
  • 7. ‣ Business and/or Project process ‣ Ticketing system and workflow ‣ Environments - testing / staging / qa / ci / beta / etc ‣ Deployment process and schedule ‣ Automation (Continuous Integration/Delivery) Selection Criteria
  • 9. ‣ Wing and a Prayer ‣ Long-Running Branches ‣ Git Flow ‣ Branch-per-Feature Strategies
  • 10. ‣ Single Branch ‣ Commit when you want to ‣ Deploy with tags? ‣ Careful ‣ Unfinished code could creep in ‣ Unclear what’s in production Wing and a Prayer
  • 11. Wing and a Prayer
  • 12. ‣ One branch for development, one for production ‣ Cherry pick commits to deploy ‣ Tag production branch ‣ Cleaner history in Git than SVN Long Running Branches
  • 14. ‣ Careful: ‣ Branches will diverge ‣ Not developing on production code ‣ Tedious to keep track of commits for a change ‣ Cumbersome to revert Long Running Branches
  • 15. ‣ Long-running branches, but with merging ‣ Specific branches and rules around features, hotfixes, bugs ‣ EVERYTHING in the develop branch WILL be merged to master, once it is stable ‣ Pull requests are powerful Git Flow
  • 17. ‣ Powerful for fast-moving teams ‣ Great separation between dev and prod ‣ Many toolsets available ‣ Much responsibility given to developers Git Flow Pros
  • 18. ‣ Much responsibility given to developers ‣ Hard to pull stuff back ‣ Frustrating for project managers ‣ Limited number of environments Git Flow Cons
  • 19. ‣ Master represents production ‣ Every feature and hotfix gets a branch ‣ Nothing is merged until prod deployment ‣ Utilize “throw away” branches for various environments ‣ A build process reruns when branches are added/ removed Branch per Feature
  • 22. ‣ Allows for limitless environments ‣ Restrict who can merge to master ‣ Granular control over code progression ‣ Easy to remove branches from an environment ‣ We can always deploy BPF Pros
  • 23. ‣ Code conflicts can be tricky to track down ‣ Requires some automation ‣ Pull requests are used less frequently ‣ Training for team BPF Cons
  • 25. ‣ Team makeup and competency ‣ Will you be the bottleneck? ‣ Who will approve code promotion? ‣ How much do you trust your developers? Selection Criteria
  • 26. ‣ Business and/or Project process ‣ Ticketing system and workflow ‣ Environments - testing / staging / qa / ci / beta / etc ‣ Deployment process and schedule ‣ Automation (Continuous Integration/Delivery) Selection Criteria
  • 27. ‣ Git Flow ‣ http://nvie.com/posts/a-successful-git-branching-model/ ‣ http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/ ‣ Branch per Feature ‣ https://www.acquia.com/blog/pragmatic-guide-branch- feature-git-branching-strategy ‣ http://dymitruk.com/blog/2012/02/05/branch-per-feature/ Further Reading