SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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?

Contenu connexe

Tendances

Git workflows
Git workflowsGit workflows
Git workflowsXpand IT
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentationMack Hardy
 
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyVivek Parihar
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams Atlassian
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & GitJason Byrne
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsKumar Shìvam
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?John Congdon
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version ControlSourabh Sahu
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Learning git
Learning gitLearning git
Learning gitSid Anand
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHubVikram SV
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Noa Harel
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsAtlassian
 

Tendances (20)

Git workflows
Git workflowsGit workflows
Git workflows
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
 
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching Strategy
 
Git flow
Git flowGit flow
Git flow
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
Git
GitGit
Git
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version Control
 
Git
GitGit
Git
 
Git real slides
Git real slidesGit real slides
Git real slides
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Learning git
Learning gitLearning git
Learning git
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release Streams
 

En vedette

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
 

En vedette (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
 

Plus 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ı
 

Plus 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
 

Dernier

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Dernier (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 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?