SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsLee Hanxue
 
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 basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagramsDilum Navanjana
 
Learning git
Learning gitLearning git
Learning gitSid Anand
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction TutorialThomas Rausch
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitE Carter
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHubNicolás Tourné
 

Was ist angesagt? (20)

Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
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
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Git basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagrams
 
Learning git
Learning gitLearning git
Learning git
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Git Rebase vs Merge
Git Rebase vs MergeGit Rebase vs Merge
Git Rebase vs Merge
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Git collaboration
Git collaborationGit collaboration
Git collaboration
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Mehr von 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ı
 

Mehr von 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
 

Kürzlich hochgeladen

"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 ...Zilliz
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
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...Jeffrey Haguewood
 
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 FMESafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Kürzlich hochgeladen (20)

"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 ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

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?