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?

Was ist angesagt? (20)

Git flow
Git flowGit flow
Git flow
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
 
Git Rebase vs Merge
Git Rebase vs MergeGit Rebase vs Merge
Git Rebase vs Merge
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flow
 
Git basics
Git basicsGit basics
Git basics
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
git and github
git and githubgit and github
git and github
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Git training v10
Git training v10Git training v10
Git training v10
 
Understanding Branching and Merging in Git
Understanding Branching and Merging in GitUnderstanding Branching and Merging in Git
Understanding Branching and Merging in Git
 
Learning git
Learning gitLearning git
Learning git
 

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

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
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 

Kürzlich hochgeladen (20)

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
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 

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?