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
Another completed feature is rebased on Staging
----f1
/
----------------------M/p1----f2----S
Rebased feature branches are merged into Staging
----------------------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