Git graph demo

Simple "branch and merge" graph

    ---
    title: Simple "branch and merge" (left-to-right)
    ---
    gitGraph LR:
    commit
    branch newbranch
    checkout newbranch
    commit
    checkout main
    merge newbranch
    
    ---
    title: Simple "branch and merge" (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch newbranch
    checkout newbranch
    commit
    checkout main
    merge newbranch
    
      ---
      title: Simple "branch and merge" (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch newbranch
      checkout newbranch
      commit
      checkout main
      merge newbranch
      

Continuous development graph

    ---
    title: Continuous development (left-to-right)
    ---
    gitGraph LR:
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop
    checkout develop
    commit
    checkout main
    merge develop
    
    ---
    title: Continuous development (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop
    checkout develop
    commit
    checkout main
    merge develop
    
      ---
      title: Continuous development (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch develop
      checkout develop
      commit
      checkout main
      merge develop
      checkout develop
      commit
      checkout main
      merge develop
      

Merge feature to advanced main graph

    ---
    title: Merge feature to advanced main (left-to-right)
    ---
    gitGraph LR:
    commit
    branch newbranch
    checkout newbranch
    commit
    checkout main
    commit
    merge newbranch
    
    ---
    title: Merge feature to advanced main (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch newbranch
    checkout newbranch
    commit
    checkout main
    commit
    merge newbranch
    
      ---
      title: Merge feature to advanced main (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch newbranch
      checkout newbranch
      commit
      checkout main
      commit
      merge newbranch
      

Two-way merges

    ---
    title: Two-way merges (left-to-right)
    ---
    gitGraph LR:
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop
    commit
    checkout develop
    merge main
    commit
    checkout main
    merge develop
    
    ---
    title: Two-way merges (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop
    commit
    checkout develop
    merge main
    commit
    checkout main
    merge develop
    
      ---
      title: Two-way merges (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch develop
      checkout develop
      commit
      checkout main
      merge develop
      commit
      checkout develop
      merge main
      commit
      checkout main
      merge develop
      

Cherry-pick from branch graph

    ---
    title: Cherry-pick from branch (left-to-right)
    ---
    gitGraph LR:
    commit
    branch newbranch
    checkout newbranch
    commit id: "Pick me"
    checkout main
    commit
    checkout newbranch
    commit
    checkout main
    cherry-pick id: "Pick me"
    
    ---
    title: Cherry-pick from branch (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch newbranch
    checkout newbranch
    commit id: "Pick me"
    checkout main
    commit
    checkout newbranch
    commit
    checkout main
    cherry-pick id: "Pick me"
    
      ---
      title: Cherry-pick from branch (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch newbranch
      checkout newbranch
      commit id: "Pick me"
      checkout main
      commit
      checkout newbranch
      commit
      checkout main
      cherry-pick id: "Pick me"
    

Cherry-pick from main graph

    ---
    title: Cherry-pick from main (left-to-right)
    ---
    gitGraph LR:
    commit
    branch develop
    commit
    checkout main
    commit id:"A"
    checkout develop
    commit
    cherry-pick id: "A"
    
    ---
    title: Cherry-pick from main (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch develop
    commit
    checkout main
    commit id:"A"
    checkout develop
    commit
    cherry-pick id: "A"
    
      ---
      title: Cherry-pick from main (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch develop
      commit
      checkout main
      commit id:"A"
      checkout develop
      commit
      cherry-pick id: "A"
      

Cherry-pick then merge graph

    ---
    title: Cherry-pick then merge (left-to-right)
    ---
    gitGraph LR:
    commit
    branch newbranch
    checkout newbranch
    commit id: "Pick me"
    checkout main
    commit
    checkout newbranch
    commit
    checkout main
    cherry-pick id: "Pick me"
    merge newbranch
    
    ---
    title: Cherry-pick then merge (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch newbranch
    checkout newbranch
    commit id: "Pick me"
    checkout main
    commit
    checkout newbranch
    commit
    checkout main
    cherry-pick id: "Pick me"
    merge newbranch
    
      ---
      title: Cherry-pick then merge (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch newbranch
      checkout newbranch
      commit id: "Pick me"
      checkout main
      commit
      checkout newbranch
      commit
      checkout main
      cherry-pick id: "Pick me"
      merge newbranch
      

Merge from main onto undeveloped branch graph

    ---
    title: Merge from main onto undeveloped branch (left-to-right)
    ---
    gitGraph LR:
    commit
    branch develop
    commit
    checkout main
    commit
    checkout develop
    merge main
    
    ---
    title: Merge from main onto undeveloped branch (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch develop
    commit
    checkout main
    commit
    checkout develop
    merge main
    
      ---
      title: Merge from main onto undeveloped branch (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch develop
      commit
      checkout main
      commit
      checkout develop
      merge main
      

Merge from main onto developed branch graph

    ---
    title: Merge from main onto developed branch (left-to-right)
    ---
    gitGraph LR:
    commit
    branch develop
    commit
    checkout main
    commit
    checkout develop
    commit
    merge main
    
    ---
    title: Merge from main onto developed branch (top-to-bottom)
    ---
    gitGraph TB:
    commit
    branch develop
    commit
    checkout main
    commit
    checkout develop
    commit
    merge main
    
      ---
      title: Merge from main onto developed branch (bottom-to-top)
      ---
      gitGraph BT:
      commit
      branch develop
      commit
      checkout main
      commit
      checkout develop
      commit
      merge main
      

Two branches from same commit graph

    ---
    title: Two branches from same commit (left-to-right)
    ---
    gitGraph LR:
    commit
    commit
    branch feature-001
    commit
    commit
    checkout main
    branch feature-002
    commit
    checkout feature-001
    merge feature-002
    
    ---
    title: Two branches from same commit (top-to-bottom)
    ---
    gitGraph TB:
    commit
    commit
    branch feature-001
    commit
    commit
    checkout main
    branch feature-002
    commit
    checkout feature-001
    merge feature-002
    
      ---
      title: Two branches from same commit (bottom-to-top)
      ---
      gitGraph BT:
      commit
      commit
      branch feature-001
      commit
      commit
      checkout main
      branch feature-002
      commit
      checkout feature-001
      merge feature-002
      

Three branches and a cherry-pick from each graph

    ---
    title: Three branches and a cherry-pick from each (left-to-right)
    ---
    gitGraph LR:
    commit id: "ZERO"
    branch develop
    commit id:"A"
    checkout main
    commit id:"ONE"
    checkout develop
    commit id:"B"
    branch featureA
    commit id:"FIX"
    commit id: "FIX-2"
    checkout main
    commit id:"TWO"
    cherry-pick id:"A"
    commit id:"THREE"
    cherry-pick id:"FIX"
    checkout develop
    commit id:"C"
    merge featureA
    
    ---
    title: Three branches and a cherry-pick from each (top-to-bottom)
    ---
    gitGraph TB:
    commit id: "ZERO"
    branch develop
    commit id:"A"
    checkout main
    commit id:"ONE"
    checkout develop
    commit id:"B"
    branch featureA
    commit id:"FIX"
    commit id: "FIX-2"
    checkout main
    commit id:"TWO"
    cherry-pick id:"A"
    commit id:"THREE"
    cherry-pick id:"FIX"
    checkout develop
    commit id:"C"
    merge featureA
    
    ---
    title: Three branches and a cherry-pick from each (bottom-to-top)
    ---
    gitGraph BT:
    commit id: "ZERO"
    branch develop
    commit id:"A"
    checkout main
    commit id:"ONE"
    checkout develop
    commit id:"B"
    branch featureA
    commit id:"FIX"
    commit id: "FIX-2"
    checkout main
    commit id:"TWO"
    cherry-pick id:"A"
    commit id:"THREE"
    cherry-pick id:"FIX"
    checkout develop
    commit id:"C"
    merge featureA