script of this demo:
we pretend we are working on a couple of features. Mathew makes f1 and alexei makes f2.
We do it a couple of ways.. including a conflict.
Let's pretend it's a little C program.
include.h, source.c, README.md is all there is.
on branch: take-turns
- matz pushes f1 in source.c
- alexei pulls, changes source.c
- alexei pushes f2
on branch: ff (ff stands for fast forward)
- alexei, pushes f1 in include.h (NOTE include.h!!)
- matz, meanwhile writes f2
- matz tries to push f2.. can't because tip is out of date??
- matz pulls. merge is fine because changes are to different files
- matz pushes f1 and f2
on branch: conflict
- alexei pushes f1 (changing first line) in source.c
- meanwhile, matz writes f2, also changing first line of source.c
- matz can't push, pulls, conflict!
- matz resolves conflict and pushes resolved source.c with both f1 and f2 in source.c