55
Intermediate Git: Workflows for Teams Matt Wrather, Wrather Creative DrupalCamp LA 2015

Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Embed Size (px)

Citation preview

Page 1: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Intermediate Git: Workflows for Teams

Matt Wrather, Wrather Creative DrupalCamp LA 2015

Page 2: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 3: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Drupal Developer, Bon Vivant,

Man of Mystery

[email protected] @mwrather

Page 4: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 5: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

(doesn’t use git)photo: slworking

CC-BY-NC-SA

Page 7: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 8: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

We need…

• Flexibility

• Collaboration

• Recoverability

• Awesomesauce

• Impatient

• Disorganized

• Indecisive

• Insecure

We are…

Page 9: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Agenda

“In theory there’s no difference between theory and practice.

In practice, there is.”

—Yogi Berra

Page 10: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 12: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 13: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 14: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 15: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 16: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 17: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 18: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 19: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 20: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 21: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 22: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 23: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 24: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Problems with Git Flow

It’s a little intense.

Page 25: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

“There are two kinds of people in this world—those who believe

there are two kinds of people in this world and those who are

smart enough to know better.”

—Tom Robbins Still Life with Woodpecker (2001)

Page 26: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 27: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 28: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 29: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Winchester Mystery House San Jose, CA

Page 30: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Fetch and Rebase Workflow$ git checkout -b my-feature-branch master

# work, stage, commit, repeat; then:

$ git fetch$ git rebase origin/master

$ git checkout master$ git merge origin/master

$ git merge --no-ff my-feature-branch$ git push origin master

Page 31: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Fetch and Rebase Workflow$ git checkout my-feature-branch$ git merge master# work, stage, commit, repeat; then:

$ git fetch$ git rebase origin/master

$ git checkout master$ git merge origin/master

$ git merge --no-ff my-feature-branch$ git push origin master

Page 32: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 33: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Thou Shalt Not Rebase CommitsThou Hast Pushed To a Remote Repository.

Page 34: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 35: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Topic Branch Workflow$ git checkout master$ git pull

$ git checkout -b topic-branch-1 master$ git checkout -b topic-branch-2 master$ git checkout -b topic-branch-3 master$ git checkout -b topic-branch-4 master

# work and push

$ git checkout -b staging master$ git merge topic-branch-1 topic-branch-2 # etc.

$ git checkout master$ git merge staging

Page 36: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 37: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 38: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 39: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 40: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 41: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 42: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 43: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

feature/

bugfix/

release/

google-sitemapab-123-google-sitemap

Page 44: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

http://thedoghousediaries.com/5468

Page 45: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

DATA YOU LEFT OUT A SEMICOLON

ENGAGE FACEPALM

Page 46: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

checkout

Page 47: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

revert

Page 48: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

reset

Page 49: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

reset --hard

Page 50: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

rebase -i

Page 51: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

Thou Shalt Not Rebase CommitsThou Hast Pushed To a Remote Repository.

Page 52: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 53: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015
Page 54: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015

reflog

Page 55: Intermediate Git: Workflows for Teams at DrupalCamp LA, 2015