Visualizing Git Workflows - scribestools.readthedocs.io · eScribis...

19
eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows ... rw rw r w pr fk fk Trees Commits Branches Repositories Workflows ... rw rw r w pr fk fk Trees Commits Branches Repositories Workflows

Transcript of Visualizing Git Workflows - scribestools.readthedocs.io · eScribis...

Page 1: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 1

Visualizing Git Workflows

...

rwrwr

w

pr

fk

fk

Trees Commits Branches Repositories Workflows

...

rwrwr

w

pr

fk

fk

Trees Commits Branches Repositories Workflows

Page 2: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 2

...

rwrwr

w

pr

fk

fk

Trees Commits Branches Repositories Workflows

...

rwrwr

w

pr

fk

fk

Trees Commits Branches Repositories Workflows

Page 3: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 3

Workflows

Workflow = best practices + tools

init repoweb: new repogit clone https://github.com/...

init repoweb: new repogit clone https://github.com/...

pullgit pull root master

pullgit pull root master

new commit<changes>

git statusgit add -A :/git statusgit commit -am “<msg>”

new commit<changes>

git statusgit add -A :/git statusgit commit -am “<msg>”

(merge)git status<solve conflicts>

git statusgit add -A :/git commit -am “<msg>”

(merge)git status<solve conflicts>

git statusgit add -A :/git commit -am “<msg>”

pushgit push root master

pushgit push root master

no conflict merge conflict

Page 4: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 5

Choosing/Defining a workflow

- how many people ?- how fast ?- trust/skill levels ?- geographical distribution ?- high/low ceremonies ?- tool integrations ?- acceptable complexity ?- product quality factors ?- dev / maintenance ?- ...

??

Page 5: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 6

Workflows elements

- repositories- branches- merge/pull request- reviews- issues/boards- testing - continuous integration- releases

repositories

branches

reviews

pull request

Page 6: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

7eScribis GestionDeProduits-GitWorkflows-6 7

Workflows

Page 7: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 8

Some workflows

"Private workflow" "Centralized workflows" "Feature-branch workflows" "Rebase worflow" "Hashrocket workflow" "Star wars spring workflow" "Whispering pines workflow"

"Gitflow" "GitHub flow" "GitLab flow" "Atlassian Simple Git Workflow" "Forking workflows"

...

Page 8: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 9

Private workflow

initinit

CommitCommit

master

=> https://scribestools.readthedocs.io/en/latest/github/index.html#private-workflow

Page 9: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 10

Public workflow

CloneClone

CommitCommit

PushPush

w

origin/master

noe/master

=> https://scribestools.readthedocs.io/en/latest/github/index.html#public-workflow

Page 10: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 11

Shared master workflow

CloneClone

CommitCommit

PushPush

PullPull

...

rwrw

origin/master

noe/master

ali/master

=> https://scribestools.readthedocs.io/en/latest/github/index.html#shared-master-workflow

Page 11: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 12

Feature branches workflow

CloneClone

CommitCommit

PushPush

PullPull

BranchBranch

CheckoutCheckout

MergeMerge...

rw rw

master

feature24

feature23

feature25

=> https://scribestools.readthedocs.io/en/latest/github/index.html#feature-branches-workflow

Page 12: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 13

Git flowCloneClone

CommitCommit

PushPush

PullPull

BranchBranch

CheckoutCheckout

MergeMerge...

rw rw

master

features

develop

hotfixesreleases

=> https://scribestools.readthedocs.io/en/latest/github/index.html#git-flow

Page 13: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 14

Page 14: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 15

Open source workflows

...

rwrwr

w

pr

fk

fk

Integration manager workflow

w

pr

pr

Benevolent dictator workflow

Page 15: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 16

Pull-requests / Github flow

...

rwrwr

w

pr

fk

fk

fk

ForkFork

Commit Commit

PushPush

PullPull

Pull requestPull request

DiscussDiscuss

Ask reviewAsk review

BranchBranch

Commit Commit

RemoteRemote

Discuss Discuss

MergeMerge

ReviewReview

FetchFetch

deve

lope

r w

orkf

low

inte

grat

or w

orkf

low

Page 16: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 17

https://cloud.githubusercontent.com/assets/391331/6142393/72c7ff64-b16a-11e4-9e74-5b3c468ea791.png

Pull-requests -- Overview

Page 17: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 18

Review

Tests

Commit

Discussions

Commit

Pull-requests -- Example

Page 18: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 19

Pull-requests -- Reviews

Page 19: Visualizing Git Workflows - scribestools.readthedocs.io · eScribis GestionDeProduits-GitWorkflows-6 1 Visualizing Git Workflows... r rw rw w pr fk fk Trees Commits Branches Repositories

eScribis GestionDeProduits-GitWorkflows-6 20

Pull-requests -- Merge