TopGit manages a patch queue using Git topic branches, one patch per branch. It allows for patch dependencies and can thus manage non-linear patch series.
TopGit is a minimal layer on top of Git, which does not limit use of Git's functionality (such as the index). It rigorously keeps history until a patch is accepted upstream. It is also fully usable across distributed repositories.