Javier Negre @ tnwlabs

master $ git checkout -b dev

# Commiting changes

# Hotfixes in master

# Initial scheme

master $ git merge dev

master $ git merge dev

# Initial scheme

dev $ git rebase master

dev $ git rebase master

master $ git merge dev

master $ git merge dev
Small features, developed within few days/weeks
Linear commit history
Cleaner history, without merge commits
Easier to debug ( $ git bisect )


* $ git fetch

l/master $ git push origin master x

l/master $ git rebase origin/master

l/master $ git push origin master

l/master $ git pull origin master; $ git checkout -b dev

l/dev $ git push origin dev

l/master $ git pull origin master

l/dev $ git rebase master

l/dev $ git push origin dev x

l/dev $ git push -f origin dev

Forcing a push is dangerous! You might lose code by:
During panic mode:
Branches are cheap!
More at negre.co#slides