16
flow Gabriel Zigolis

git flow

Embed Size (px)

Citation preview

Page 1: git flow

flowGabriel Zigolis

Page 2: git flow

GIT-FLOW

GIT-FLOW ARE A SET OF GIT EXTENSIONS TO PROVIDE HIGH-

LEVEL REPOSITORY OPERATIONS FOR VINCENT DRIESSEN'S

BRANCHING MODEL.

HTTP://DANIELKUMMER.GITHUB.IO/GIT-FLOW-CHEATSHEET/

Page 3: git flow

CLI

GIT FLOW PROVIDES EXCELLENT COMMAND LINE HELP AND

OUTPUT. READ IT CAREFULLY TO SEE WHAT'S HAPPENING...

Page 4: git flow

GUI

THE OSX/WINDOWS CLIENT SOURCETREE IS AN EXCELLENT GIT

GUI AND PROVIDES GIT-FLOW SUPPORT.

Page 5: git flow

SETUP

YOU NEED A WORKING GIT INSTALLATION AS PREREQUISITE.

$ BREW INSTALL GIT-FLOW

$ APT-GET INSTALL GIT-FLOW

OSX

LINUX

$ WGET -Q -O - --NO-CHECK-CERTIFICATE HTTPS://GITHUB.COM/NVIE/GITFLOW/RAW/DEVELOP/CONTRIB/GITFLOW-INSTALLER.SH | BASH

BADWINDOWS

Page 6: git flow

GETTING STARTED

YOU'LL HAVE TO ANSWER A FEW QUESTIONS REGARDING THE NAMING CONVENTIONS.

$ GIT FLOW INIT

START USING GIT-FLOW BY INITIALIZING IT INSIDE AN EXISTING

GIT REPOSITORY:

Page 7: git flow

START A NEW FEATURE

THIS ACTION CREATES A NEW FEATURE BRANCH BASED ON 'DEVELOP' AND SWITCHES TO IT.

$ GIT FLOW FEATURE START MYFEATURE

DEVELOPMENT OF NEW FEATURES STARTING FROM THE

'DEVELOP' BRANCH.

Page 8: git flow

PUBLISH A FEATURE

$ GIT FLOW FEATURE PUBLISH MYFEATURE

PUBLISH A FEATURE TO THE REMOTE SERVER SO IT CAN

BE USED BY OTHER USERS.

Page 9: git flow

FINISH UP A FEATURE

*MERGED MYFEATURE INTO ‘DEVELOP' / *REMOVES THE FEATURE BRANCH / *SWITCHES BACK TO 'DEVELOP' BRANCH

$ GIT FLOW FEATURE FINISH MYFEATURE

FINISH THE DEVELOPMENT OF A FEATURE. THIS ACTION

PERFORMS THE FOLLOWING.

$ GIT PUSH ORIGIN :FEATURE/MYFEATURE

Page 10: git flow

START A RELEASE

YOU CAN OPTIONALLY SUPPLY A [BASE] COMMIT SHA-1 HASH TO START THE RELEASE FROM.

$ GIT FLOW RELEASE START MYRELEASE

USE THE GIT FLOW RELEASE COMMAND. IT CREATES A

RELEASE BRANCH CREATED FROM THE 'DEVELOP'

BRANCH.

Page 11: git flow

PUBLISH A RELEASE

$ GIT FLOW RELEASE PUBLISH MYRELEASE

IT'S WISE TO PUBLISH THE RELEASE BRANCH AFTER CREATING

IT TO ALLOW RELEASE COMMITS BY OTHER DEVELOPERS.

Page 12: git flow

FINISH UP A RELEASE

DON'T FORGET TO PUSH YOUR TAGS WITH GIT PUSH --TAGS

$ GIT FLOW RELEASE FINISH MYRELEASE

FINISHING A RELEASE IS ONE OF THE BIG STEPS IN GIT

BRANCHING.

$ GIT PUSH ORIGIN :RELEASE/MYRELEASE

Page 13: git flow

FINISH UP A RELEASE

- MERGES THE RELEASE BRANCH BACK INTO 'MASTER'

- TAGS THE RELEASE WITH ITS NAME

- BACK-MERGES THE RELEASE INTO 'DEVELOP'

- REMOVES THE RELEASE BRANCH

Page 14: git flow

START A HOTFIX

THE VERSION ARGUMENT HEREBY MARKS THE NEW HOTFIX RELEASE NAME.

$ GIT FLOW HOTFIX START MYHOTFIX

LIKE THE OTHER GIT FLOW COMMANDS, A HOTFIX IS

STARTED WITH

Page 15: git flow

FINISH UP A HOTFIX

$ GIT FLOW HOTFIX FINISH MYHOTFIX

BY FINISHING A HOTFIX IT GETS MERGED BACK INTO

DEVELOP AND MASTER. ADDITIONALLY THE MASTER

MERGE IS TAGGED WITH THE HOTFIX VERSION.

Page 16: git flow