Start with Master and Staging at same commit
M/S
Developers create feature branches from Staging
-------f1
/
M/S
-------f1
/
M/S
\
-------------f2
Completed features are rebased on Staging and then merged in
-------f1
/
M--------------S/f2
Patches are created as a new branch from Master
-------f1
/
M--------------S/f2
\
--------------------p1
Completed patches are rebased on master if needed and then merged in
-------f1
/
----------------------M/p1
\
------------S/f2
Staging is then rebased on master again
-------f1
/
----------------------M/p1----S/f2
More completed features are rebased on Staging and then merged in
----------------------M/p1----f2----S/f1
Master branch is fast-forward merged to stable position on Staging branch
----------------------p1------f2----M/S/f1
Cycle starts over with Master and Staging on same commit
--------------------------------------M/S