Determine if a merge will resolve via fast-forward
<p>I want to know if a particular merge will resolve via "fast-forward" or not before running the merge command. </p>

<p>I know I can specifically request for the merge to not be resolved via "fast-forward" (using the <code>--no-ff</code> option). Or that I can try to resolve the merge only by fast-forward (using the <code>--ff</code> option).</p>

<p>But sometimes I want to know if a particular merge is going to resolve via fast-forward before I run it. I realise that I can in theory work it out by digging through the history tree. And I also realise that I could run the merge and see what happens, but this becomes problematic if I then decide I would prefer for the merge to be resolved in the other way, as I have to undo the merge (by repointing the branch tags in the ref-log) and do it again.</p>

<p>NOTE: The <code>--dry-run</code> question (<a href="https://stackoverflow.com/questions/501407">Is there a git-merge --dry-run option?</a>) is much more about looking at what merge conflicts may exist in a merge, and not about merges that may resolve via fast-forward.</p>