SlideShare a Scribd company logo
2
Most read
6
Most read
8
Most read
Git workflows for Drupal  projects Mack Hardy, Raphael Huefner, Smith Milner, Shawn Price @AffinityBridge
What is a workflow? "... a  sequence of connected steps " -Wikipedia The workflow we are looking for is an  efficient method  to allow  multiple developers  to  integrate working code  into a project. 
What is Git, and why should you use it Distributed version control system Fast Easy and cheap branching Drupal.org uses GIT
SVN... in the beginning Our SVN workflow: branching is hard(er) all work committed to and deployed from /trunk and release tags could not commit locally, hard to work offline hidden .svn folders made module updates difficult
The move to Git All the cool kids using it Seemed to solve some of our SVN pain points Wasn't as easy as we'd hoped Expect productivity to go down before it goes up
Submodules Everywhere $ git submodule add http://git.drupal.org/project/views.git \ sites/all/modules/contrib/views Don't forget to push all commits to your submodules!
Where We Landed Everything in one Git repo (i.e. no Git submodules) 2 long-living branches, "master" and "develop" "master" is production ready all the time Releases managed with tags Separate "feature" or "topic" branches
from nvie.com
https://github.com/affinitybridge/gitflowtalk/network Network Graph from GitHub
The &quot;gitflow&quot; Git extension Based on the previous graph Project page https://github.com/nvie/gitflow &quot;water wings&quot; or &quot;training wheels&quot; to stay on track Command shortcuts for repetitive tasks Branch naming convention &quot;<prefix>/<name>&quot; 
gitflow: prepare repository $ git flow init rough equivalent: $ git init # if necessary $ # do some configuration (save prefix choices) $ # if there's no &quot;develop&quot; branch yet, create one: $ git checkout -b develop master This brings you away from the master branch. You should never commit to it directly anymore.
gitflow: start feature branch $ git flow feature start <featurename> rough equivalent: $ git checkout -b feature/<featurename> develop
gitflow: finish feature branch $ git flow feature finish <featurename> rough equivalent: $ git checkout develop $ git merge --no-ff feature/<featurename> $ git branch -d feature/<featurename>
gitflow: start release branch $ git flow release start <release#> rough equivalent: $ git checkout -b release/<release#> develop
gitflow: finish release branch $ git flow release finish <release#> rough equivalent: $ git checkout master $ git merge --no-ff release/<release#> $ git tag -a <release#> $ git checkout develop $ git merge --no-ff release/<release#> $ git branch -d release/<release#>
gitflow: start hotfix branch $ git flow hotfix start <hotfix#> rough equivalent: $ git checkout -b hotfix/<hotfix#> master
gitflow: finish hotfix branch $ git flow hotfix finish <hotfix#> rough equivalent: $ git checkout master $ git merge --no-ff hotfix/<hotfix#> $ git tag -a <hotfix#> $ git checkout develop $ git merge --no-ff hotfix/<hotfix#> $ git branch -d hotfix/<hotfix#>
Git Deployment Consolidating the work of multiple developers and preparing it for release. Always have that production ready branch.
 
GIT and the Drupal Community Drupal.org is now using GIT for version control. Choosing Git for your own code means less tools to learn when also contributing to Drupal projects. Git makes it easy to create and apply patches using  &quot;git diff&quot; and &quot;git apply&quot;.                 http://drupal.org/node/1054616#applying-patches
Wrapping Up This is what works for us. You may find a process that fits you better. Big win for us is ability to create new branches on a whim. Knowing that master is always production ready helps us sleep at night.
Resources http://affinitybridge.com Git Flow  https://github.com/nvie/gitflow NVIE Branching Model http://nvie.com/posts/a-successful-git-branching-model/ SVN to GIT Crash Course https://git.wiki.kernel.org/index.php/GitSvnCrashCourse

More Related Content

PPT
Git workflows
PDF
Git Series. Episode 3. Git Flow and Github-Flow
PPTX
Git and GitFlow branching model
PDF
Git flow Introduction
PDF
Git flow
PDF
Git-flow workflow and pull-requests
PPTX
Git branching strategies
PDF
Git workflows
Git workflows
Git Series. Episode 3. Git Flow and Github-Flow
Git and GitFlow branching model
Git flow Introduction
Git flow
Git-flow workflow and pull-requests
Git branching strategies
Git workflows

What's hot (20)

PDF
Learning git
PPTX
Git 101 for Beginners
PPTX
Why Aren't You Using Git Flow?
PDF
Git and github 101
PDF
Git real slides
PPTX
A successful Git branching model
PDF
Introduction to git flow
PDF
Git and git flow
PDF
Intro to Git and GitHub
PPTX
Git utilisation quotidienne
PPTX
Introduction git
PDF
Git Version Control System
PDF
PPTX
Git n git hub
PDF
Git Branching for Agile Teams
PDF
Github - Git Training Slides: Foundations
PPTX
Git & GitLab
PPTX
Intro to git and git hub
KEY
Git with bitbucket
PDF
Git for beginners
Learning git
Git 101 for Beginners
Why Aren't You Using Git Flow?
Git and github 101
Git real slides
A successful Git branching model
Introduction to git flow
Git and git flow
Intro to Git and GitHub
Git utilisation quotidienne
Introduction git
Git Version Control System
Git n git hub
Git Branching for Agile Teams
Github - Git Training Slides: Foundations
Git & GitLab
Intro to git and git hub
Git with bitbucket
Git for beginners
Ad

Viewers also liked (16)

PDF
Git Branching Model
PDF
Git flow for daily use
PDF
Git Workflow With Gitflow
PDF
Git Ready! Workflows
PDF
Git flow cheatsheet
PDF
Pull Request (PR): A git workflow
PPTX
Git in Continuous Deployment
PPTX
Introduction to git administration
KEY
Git branching-model
PDF
A successful git branching model 導讀
PDF
Getting Git Right
PPTX
My Git workflow
PPTX
Git workflows
PDF
Quick Introduction to git
PDF
reveal.js 3.0.0
Git Branching Model
Git flow for daily use
Git Workflow With Gitflow
Git Ready! Workflows
Git flow cheatsheet
Pull Request (PR): A git workflow
Git in Continuous Deployment
Introduction to git administration
Git branching-model
A successful git branching model 導讀
Getting Git Right
My Git workflow
Git workflows
Quick Introduction to git
reveal.js 3.0.0
Ad

Similar to Git workflows presentation (20)

PDF
Introducing Git and git flow
PDF
Git and GitHub workflows
PDF
Distributed Developer Workflows using Git
PPTX
PPTX
PDF
CS_Note_Introduction to Git Workflow.pdf
PDF
Intro to Gitflow
PDF
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
PDF
Git and Git Workflow Models as Catalysts of Software Development
PPTX
Git basics, Team Workflows (Ciro Miranda)
PDF
Improving your workflow with git
PPTX
Git One Day Training Notes
PPTX
An introduction to Git and GitFlow
KEY
Introduction To Git
PDF
Git with t for teams
KEY
Git Tech Talk
PPTX
Git Going w/ Git
PDF
Git basics
PDF
Git basics a starter on git and its ecosystem
PDF
Git workflows
Introducing Git and git flow
Git and GitHub workflows
Distributed Developer Workflows using Git
CS_Note_Introduction to Git Workflow.pdf
Intro to Gitflow
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git and Git Workflow Models as Catalysts of Software Development
Git basics, Team Workflows (Ciro Miranda)
Improving your workflow with git
Git One Day Training Notes
An introduction to Git and GitFlow
Introduction To Git
Git with t for teams
Git Tech Talk
Git Going w/ Git
Git basics
Git basics a starter on git and its ecosystem
Git workflows

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Electronic commerce courselecture one. Pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
1. Introduction to Computer Programming.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Encapsulation theory and applications.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
A comparative analysis of optical character recognition models for extracting...
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Electronic commerce courselecture one. Pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Empathic Computing: Creating Shared Understanding
Encapsulation_ Review paper, used for researhc scholars
1. Introduction to Computer Programming.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Reach Out and Touch Someone: Haptics and Empathic Computing
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Building Integrated photovoltaic BIPV_UPV.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Encapsulation theory and applications.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
SOPHOS-XG Firewall Administrator PPT.pptx

Git workflows presentation

  • 1. Git workflows for Drupal  projects Mack Hardy, Raphael Huefner, Smith Milner, Shawn Price @AffinityBridge
  • 2. What is a workflow? &quot;... a  sequence of connected steps &quot; -Wikipedia The workflow we are looking for is an efficient method to allow multiple developers to integrate working code into a project. 
  • 3. What is Git, and why should you use it Distributed version control system Fast Easy and cheap branching Drupal.org uses GIT
  • 4. SVN... in the beginning Our SVN workflow: branching is hard(er) all work committed to and deployed from /trunk and release tags could not commit locally, hard to work offline hidden .svn folders made module updates difficult
  • 5. The move to Git All the cool kids using it Seemed to solve some of our SVN pain points Wasn't as easy as we'd hoped Expect productivity to go down before it goes up
  • 6. Submodules Everywhere $ git submodule add http://git.drupal.org/project/views.git \ sites/all/modules/contrib/views Don't forget to push all commits to your submodules!
  • 7. Where We Landed Everything in one Git repo (i.e. no Git submodules) 2 long-living branches, &quot;master&quot; and &quot;develop&quot; &quot;master&quot; is production ready all the time Releases managed with tags Separate &quot;feature&quot; or &quot;topic&quot; branches
  • 10. The &quot;gitflow&quot; Git extension Based on the previous graph Project page https://github.com/nvie/gitflow &quot;water wings&quot; or &quot;training wheels&quot; to stay on track Command shortcuts for repetitive tasks Branch naming convention &quot;<prefix>/<name>&quot; 
  • 11. gitflow: prepare repository $ git flow init rough equivalent: $ git init # if necessary $ # do some configuration (save prefix choices) $ # if there's no &quot;develop&quot; branch yet, create one: $ git checkout -b develop master This brings you away from the master branch. You should never commit to it directly anymore.
  • 12. gitflow: start feature branch $ git flow feature start <featurename> rough equivalent: $ git checkout -b feature/<featurename> develop
  • 13. gitflow: finish feature branch $ git flow feature finish <featurename> rough equivalent: $ git checkout develop $ git merge --no-ff feature/<featurename> $ git branch -d feature/<featurename>
  • 14. gitflow: start release branch $ git flow release start <release#> rough equivalent: $ git checkout -b release/<release#> develop
  • 15. gitflow: finish release branch $ git flow release finish <release#> rough equivalent: $ git checkout master $ git merge --no-ff release/<release#> $ git tag -a <release#> $ git checkout develop $ git merge --no-ff release/<release#> $ git branch -d release/<release#>
  • 16. gitflow: start hotfix branch $ git flow hotfix start <hotfix#> rough equivalent: $ git checkout -b hotfix/<hotfix#> master
  • 17. gitflow: finish hotfix branch $ git flow hotfix finish <hotfix#> rough equivalent: $ git checkout master $ git merge --no-ff hotfix/<hotfix#> $ git tag -a <hotfix#> $ git checkout develop $ git merge --no-ff hotfix/<hotfix#> $ git branch -d hotfix/<hotfix#>
  • 18. Git Deployment Consolidating the work of multiple developers and preparing it for release. Always have that production ready branch.
  • 19.  
  • 20. GIT and the Drupal Community Drupal.org is now using GIT for version control. Choosing Git for your own code means less tools to learn when also contributing to Drupal projects. Git makes it easy to create and apply patches using  &quot;git diff&quot; and &quot;git apply&quot;.                 http://drupal.org/node/1054616#applying-patches
  • 21. Wrapping Up This is what works for us. You may find a process that fits you better. Big win for us is ability to create new branches on a whim. Knowing that master is always production ready helps us sleep at night.
  • 22. Resources http://affinitybridge.com Git Flow  https://github.com/nvie/gitflow NVIE Branching Model http://nvie.com/posts/a-successful-git-branching-model/ SVN to GIT Crash Course https://git.wiki.kernel.org/index.php/GitSvnCrashCourse