You have a very clear explanation of how this works in the chapter on Acenstry References in Pro Git:
~
is used to get the first parent.^
can be used to get the other parents (^2
, for example, for a merge).
But you don’t have a simple way to reference the next commit, even if there are more convoluted ways to get it.