GIT FLOWS AND HISTORY MANAGEMENT

Pavel Tyslacki

@tbicr

Content

  • Why GitHub?
  • Complexity
  • Flows
  • History
  • Process

Why GitHub?

  • Decrease complexity management
  • Team work
  • History
  • Code backup
  • Code delivery
  • Continuous quality check

Complexity

  • 7 ± 2
  • Context
  • Abstraction
  • Decomposition

Flows

  • Panda Flow
  • Git Flow
  • Github Flow

Panda Flow

Git Flow

Github Flow

History

  • merge
  • rebase
  • rebase -i
  • code review

Merge

+ one conflict per branch

+ easiest flow

+ merge squash for simple feature

- to many unnecessary commits

- not linear history

Rebase

+ linear history

- to many unnecessary commits

- to many conflicts

Rebase interactive

+ no unnecessary commits

- to many conflicts for delayed rebase

- to hard review fixes for force push

Code review

+ no force push and normal review

± conflicts per feature

- one more tool

Process

  • decrease feature capacity
  • split features/refactorings
  • keep feature review history
  • decrease feature branch life time
  • avoid long time delayed rebases

decrease complexity and avoid overhead to context restoring:

Links

Pavel Tyslacki

@tbicr

Made with Slides.com