SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Branching Model                                                                                 --stupid-content-tracker




                         $ GIT init --bare --shared doc/branching-model.git
                         Initialized empty shared Git repository in /doc/branching-model.git/

                         $ GIT clone doc/branching-model.git
                         Cloning into 'branching-model'...
                         Done.

                         $ GIT checkout master
                         Switched to branch 'master'




  Harun Yardımcı
  Software Architect @ ebay Turkey
  http://www.linkedin.com/in/harunyardimci/
  5th Feb 2013
Why GIT?                                              --stupid-content-tracker



 - Easy to learn
 - Fast and small
 - Distributed
 - Convenient staging areas
 - Cheap and multiple local branching
 - Multiple workflows
 - Data Assurance
 - Huge community
                              These are not enough to love it?
                              - It is free and open source..
Branch!! What is it?                                                               --stupid-content-tracker




  Separate line of work..
     Branch is a simply a movable pointer to a commit.




                                                  }
                                                      A commit data
                                                      one blob for the contents of each of your three files

                                                      one tree that lists the contents of the directory and
                                                      specifies which file names are stored as which blobs,

                                                      one commit with the pointer to that root tree

                                                      all the commit metadata




        Multiple commits
        the next commit stores a pointer to the
        commit that came immediately before it

                                                  {
More About Branches                                                                 --stupid-content-tracker




 Default branch is master


 Easy to create a branch


                                              }
     $ git checkout -b mybranch
     Switched to a new branch "mybranch"
           or                                         Create and switch
     $ git branch mybranch                              to the branch
     $ git checkout mybranch
     Switched to a new branch “mybranch”




 For more about branching http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
Main Branches                                                       --stupid-content-tracker




 Master Branch
                      (origin/master)
 to be the main branch where the source code of HEAD always reflects a state
 with the latest delivered development changes for the next release


 Release Branches
                      (origin/release-*)
 HEAD always reflects a production ready state. Also called Release Candidate
 (RC) or staging branch.


 Production Branch
                      (origin/production)
 HEAD always reflects a state with the current release on the production.
 “Never and ever make any changes on this branch.”
Supporting Branches                                                                          --stupid-content-tracker




 Feature Branches
                              (origin/feature/*, origin/fix/*, origin/fun/*)
 used to develop new features for the upcoming release or a distant future
 release


 Hotfix Branches
                              (origin/hotfix/*)
 arise from the necessity to act immediately upon an undesired state of a live
 production version




  Each of these branches have a specific purpose and are bound to strict rules as to which
  branches may be their originating branch and which branches must be their merge targets.
Feature Branches                                                  --stupid-content-tracker



 Time
                        ch er              to
                      an st             to
                                      in er
                    br ma
                  te e             g e st
               ea th             er a
             Cr om              M em
 Feature 1     fr                th


                                                           s er
                                                         ge st
                                                       an m a
                                                      h e
                                                  ll c th
 Feature 2                                      Pu om
                                                 fr




 Master
Release Branches                                                      --stupid-content-tracker



 Time
                            ch er              to
                          an st             to
                                          in er
                        br ma
                      te e             g e st
                   ea th             er a
                 Cr om              M em
 Feature 1         fr                th


                                                               s er
                                                             ge st
                                                           an m a
                                                          h e
                                                      ll c th
 Feature 2                                          Pu om
                                                     fr




 Master


 Release-0.1.2

 Release-0.1.3
Production Branch                                                                           --stupid-content-tracker



 Time
                            ch er              to
                          an st             to
                                          in er
                        br ma
                      te e             g e st
                   ea th             er a
                 Cr om              M em
 Feature 1         fr                th


                                                                                    s er
                                                                                  ge st
                                                                                an m a
                                                                               h e
                                                                           ll c th
 Feature 2                                                               Pu om
                                                                          fr




 Master
                                                                     e
                                                               r   th
                                                            te
                                                         af
                                                        te
                                                      le e
                                                    De erg
 Release-0.1.2                                       m
                                                                                                              rt
                                                                                                                   he
                                                                                                            te
                                                                                                          af
                                                                                                         te
                                                                                                       le e
                                                                                                     De erg
 Release-0.1.3                                                                                        m




 Production
                                                                           Deploy and tag
Hotfix Branches                                                                                   --stupid-content-tracker



  Time
                             ch er              to
                           an st             to
                                           in er
                         br ma
                       te e             g e st
                    ea th             er a
                  Cr om              M em
  Feature 1         fr                th


                                                                                          s er
                                                                                        ge st
                                                                                      an m a
                                                                                     h e
                                                                                 ll c th
  Feature 2                                                                    Pu om
                                                                                fr




  Master
                                                                           e
                                                                     r   th
                                                                  te
                                                               af
                                                              te
                                                            le e
                                                          De erg
  Release-0.1.2                                            m
                                                                                                                        rt
                                                                                                                             he
                                                                                                                      te
                                                                                                                    af
                                                                                                                 te
                                                                                                               le e
                                                                                                             De erg
  Release-0.1.3                                                                                               m



  Hot Fix

  Production
                                                     Deploy and tag              Deploy and tag    Deploy and tag      Deploy and tag
Naming Conventions                                                    --stupid-content-tracker




 Master Branch:
 - Name is master


 Release Branches:
 - All branch names start with “release-” followed by a release number
      $ git checkout master -b release-0.1.2


 Production Branch:
 - Name is production
     $ git checkout production
     $ git merge --no-ff release-0.1.2
     $ git tag -a v.0.1.2


 Hotfix Branches:
 - Hotfix branch name standart is as follows “hotfix/[JIRA-NUMBER]”
     $ git checkout master -b hotfix/GG-13544
Naming Conventions                                                      --stupid-content-tracker




 Feature Branches:
 - have couple of standards depends on issue types


     If your Jira issue type is one of the followings then start the branch name
     with “fix/”
          - Bug, Defect, Fix

     If your issue type is one of the followings then start your branch name with
     “feature/”
          - Improvement, Feature, Task

     If the issue type is none of them or it is an experimental branch, name it with
     the “fun/” prefix unless it is just a local branch which you never push to
     remote.
Wait a Minute!                                                           --stupid-content-tracker




  Everything if clear and perfect up to now. But I don't have a production branch in
  my repository. What should I do?



      Following will create remote branch in the repository
      $ git checkout master -b production
      $ git push origin production


      If someone else already created that you just track the branch
      $ git checkout --track origin/production
        or
      $ git checkout -b production origin/production
The Circle   --stupid-content-tracker
Commit Messages                                                               --stupid-content-tracker




   Commit messages has to include Jira issue number as a prefix


       $ git commit -m “GG-1307 new banner added to left bar of homepage” -a




Why we write issue
number in the commit
messages?
                               {
           “Write Meaningful Commit Messages.”
               - Albert Einstein. He would say that if he were alive today.
Thanks                               --stupid-content-tracker




 That's all about branching model.

   Any Questions?

Mais conteúdo relacionado

Mais procurados

Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowMikhail Melnik
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 
Branching and Merging Practices
Branching and Merging Practices Branching and Merging Practices
Branching and Merging Practices Rajesh Kumar
 
A Practical Introduction to git
A Practical Introduction to gitA Practical Introduction to git
A Practical Introduction to gitEmanuele Olivetti
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practiceMajid Hosseini
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An IntroductionBehzad Altaf
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flowKnoldus Inc.
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow soloviniciusban
 
Git basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagramsDilum Navanjana
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubVenkat Malladi
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentationMack Hardy
 

Mais procurados (20)

Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
Branching and Merging Practices
Branching and Merging Practices Branching and Merging Practices
Branching and Merging Practices
 
Jenkins
JenkinsJenkins
Jenkins
 
A Practical Introduction to git
A Practical Introduction to gitA Practical Introduction to git
A Practical Introduction to git
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practice
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
git and github
git and githubgit and github
git and github
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flow
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Git basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagrams
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git basic
Git basicGit basic
Git basic
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
 

Destaque

Continuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestContinuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestShawn Jones
 
Reconstructing the past with media wiki
Reconstructing the past with media wikiReconstructing the past with media wiki
Reconstructing the past with media wikiShawn Jones
 
Pivotal tracker presentation 10-13-2010
Pivotal tracker presentation   10-13-2010Pivotal tracker presentation   10-13-2010
Pivotal tracker presentation 10-13-2010pivotjoe
 
Pivotal Tracker Overview
Pivotal Tracker OverviewPivotal Tracker Overview
Pivotal Tracker OverviewDan Podsedly
 
Pivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start GuidePivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start GuideAmit Ranjan
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for DummiesTomer Gabel
 
Agile, the Pivotal way
Agile, the Pivotal wayAgile, the Pivotal way
Agile, the Pivotal wayJames Chan
 
Behavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaBehavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaNaveen Kumar Singh
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberAsheesh Mehdiratta
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 OverviewMike Ensor
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaSeb Rose
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberBrandon Keepers
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to gitJoel Krebs
 

Destaque (17)

Continuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestContinuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonest
 
Reconstructing the past with media wiki
Reconstructing the past with media wikiReconstructing the past with media wiki
Reconstructing the past with media wiki
 
Git branching model
Git branching modelGit branching model
Git branching model
 
Maven
MavenMaven
Maven
 
Pivotal tracker presentation 10-13-2010
Pivotal tracker presentation   10-13-2010Pivotal tracker presentation   10-13-2010
Pivotal tracker presentation 10-13-2010
 
Pivotal Tracker Overview
Pivotal Tracker OverviewPivotal Tracker Overview
Pivotal Tracker Overview
 
Pivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start GuidePivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start Guide
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for Dummies
 
Agile, the Pivotal way
Agile, the Pivotal wayAgile, the Pivotal way
Agile, the Pivotal way
 
Behavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaBehavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and java
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 Overview
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for Java
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
 

Mais de Harun Yardımcı

Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016
Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016
Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016Harun Yardımcı
 
"It Works On My Machine" Problem
"It Works On My Machine" Problem"It Works On My Machine" Problem
"It Works On My Machine" ProblemHarun Yardımcı
 
What you don't learn in the school
What you don't learn in the schoolWhat you don't learn in the school
What you don't learn in the schoolHarun Yardımcı
 
Scalability at Gittigidiyor
Scalability at GittigidiyorScalability at Gittigidiyor
Scalability at GittigidiyorHarun Yardımcı
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys Harun Yardımcı
 
Gittigidiyor.com'da Acik Kaynak Uygulamalar
Gittigidiyor.com'da Acik Kaynak UygulamalarGittigidiyor.com'da Acik Kaynak Uygulamalar
Gittigidiyor.com'da Acik Kaynak UygulamalarHarun Yardımcı
 

Mais de Harun Yardımcı (10)

Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016
Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016
Webrazzi Online: Code - GittiGidiyor’a Teknik Bakış 2016
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
"It Works On My Machine" Problem
"It Works On My Machine" Problem"It Works On My Machine" Problem
"It Works On My Machine" Problem
 
What you don't learn in the school
What you don't learn in the schoolWhat you don't learn in the school
What you don't learn in the school
 
CFEX 2014 - DAU
CFEX 2014 - DAUCFEX 2014 - DAU
CFEX 2014 - DAU
 
Scalability at Gittigidiyor
Scalability at GittigidiyorScalability at Gittigidiyor
Scalability at Gittigidiyor
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
 
Introduction to Mongodb
Introduction to MongodbIntroduction to Mongodb
Introduction to Mongodb
 
Gittigidiyor.com'da Acik Kaynak Uygulamalar
Gittigidiyor.com'da Acik Kaynak UygulamalarGittigidiyor.com'da Acik Kaynak Uygulamalar
Gittigidiyor.com'da Acik Kaynak Uygulamalar
 
Mongodb workshop
Mongodb workshopMongodb workshop
Mongodb workshop
 

Último

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Git Branching Model

  • 1. Branching Model --stupid-content-tracker $ GIT init --bare --shared doc/branching-model.git Initialized empty shared Git repository in /doc/branching-model.git/ $ GIT clone doc/branching-model.git Cloning into 'branching-model'... Done. $ GIT checkout master Switched to branch 'master' Harun Yardımcı Software Architect @ ebay Turkey http://www.linkedin.com/in/harunyardimci/ 5th Feb 2013
  • 2. Why GIT? --stupid-content-tracker - Easy to learn - Fast and small - Distributed - Convenient staging areas - Cheap and multiple local branching - Multiple workflows - Data Assurance - Huge community These are not enough to love it? - It is free and open source..
  • 3. Branch!! What is it? --stupid-content-tracker Separate line of work.. Branch is a simply a movable pointer to a commit. } A commit data one blob for the contents of each of your three files one tree that lists the contents of the directory and specifies which file names are stored as which blobs, one commit with the pointer to that root tree all the commit metadata Multiple commits the next commit stores a pointer to the commit that came immediately before it {
  • 4. More About Branches --stupid-content-tracker Default branch is master Easy to create a branch } $ git checkout -b mybranch Switched to a new branch "mybranch" or Create and switch $ git branch mybranch to the branch $ git checkout mybranch Switched to a new branch “mybranch” For more about branching http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
  • 5. Main Branches --stupid-content-tracker Master Branch (origin/master) to be the main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release Release Branches (origin/release-*) HEAD always reflects a production ready state. Also called Release Candidate (RC) or staging branch. Production Branch (origin/production) HEAD always reflects a state with the current release on the production. “Never and ever make any changes on this branch.”
  • 6. Supporting Branches --stupid-content-tracker Feature Branches (origin/feature/*, origin/fix/*, origin/fun/*) used to develop new features for the upcoming release or a distant future release Hotfix Branches (origin/hotfix/*) arise from the necessity to act immediately upon an undesired state of a live production version Each of these branches have a specific purpose and are bound to strict rules as to which branches may be their originating branch and which branches must be their merge targets.
  • 7. Feature Branches --stupid-content-tracker Time ch er to an st to in er br ma te e g e st ea th er a Cr om M em Feature 1 fr th s er ge st an m a h e ll c th Feature 2 Pu om fr Master
  • 8. Release Branches --stupid-content-tracker Time ch er to an st to in er br ma te e g e st ea th er a Cr om M em Feature 1 fr th s er ge st an m a h e ll c th Feature 2 Pu om fr Master Release-0.1.2 Release-0.1.3
  • 9. Production Branch --stupid-content-tracker Time ch er to an st to in er br ma te e g e st ea th er a Cr om M em Feature 1 fr th s er ge st an m a h e ll c th Feature 2 Pu om fr Master e r th te af te le e De erg Release-0.1.2 m rt he te af te le e De erg Release-0.1.3 m Production Deploy and tag
  • 10. Hotfix Branches --stupid-content-tracker Time ch er to an st to in er br ma te e g e st ea th er a Cr om M em Feature 1 fr th s er ge st an m a h e ll c th Feature 2 Pu om fr Master e r th te af te le e De erg Release-0.1.2 m rt he te af te le e De erg Release-0.1.3 m Hot Fix Production Deploy and tag Deploy and tag Deploy and tag Deploy and tag
  • 11. Naming Conventions --stupid-content-tracker Master Branch: - Name is master Release Branches: - All branch names start with “release-” followed by a release number $ git checkout master -b release-0.1.2 Production Branch: - Name is production $ git checkout production $ git merge --no-ff release-0.1.2 $ git tag -a v.0.1.2 Hotfix Branches: - Hotfix branch name standart is as follows “hotfix/[JIRA-NUMBER]” $ git checkout master -b hotfix/GG-13544
  • 12. Naming Conventions --stupid-content-tracker Feature Branches: - have couple of standards depends on issue types If your Jira issue type is one of the followings then start the branch name with “fix/” - Bug, Defect, Fix If your issue type is one of the followings then start your branch name with “feature/” - Improvement, Feature, Task If the issue type is none of them or it is an experimental branch, name it with the “fun/” prefix unless it is just a local branch which you never push to remote.
  • 13. Wait a Minute! --stupid-content-tracker Everything if clear and perfect up to now. But I don't have a production branch in my repository. What should I do? Following will create remote branch in the repository $ git checkout master -b production $ git push origin production If someone else already created that you just track the branch $ git checkout --track origin/production or $ git checkout -b production origin/production
  • 14. The Circle --stupid-content-tracker
  • 15. Commit Messages --stupid-content-tracker Commit messages has to include Jira issue number as a prefix $ git commit -m “GG-1307 new banner added to left bar of homepage” -a Why we write issue number in the commit messages? { “Write Meaningful Commit Messages.” - Albert Einstein. He would say that if he were alive today.
  • 16. Thanks --stupid-content-tracker That's all about branching model. Any Questions?