I was doing an octopus merge earlier and noticed that it claims to fast-forward when you specify --no-ff, even though it does actually abide by --no-ff. I can consistently reproduce as follows: $ git clone https://github.com/sxlijin/merge-octopus-experiment $ cd merge-octopus-experiment $ git merge --no-ff origin/A origin/B --no-edit Fast-forwarding to: origin/A Trying simple merge with origin/B Merge made by the 'octopus' strategy. anotherA | 0 anotherB | 0 otherA | 0 otherB | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 anotherA create mode 100644 anotherB create mode 100644 otherA create mode 100644 otherB $ git log --graph --pretty=oneline --decorate I've reproduced the issue with 2.11.0 on both a Windows box (MSYS) and Linux (Arch). The issue seems to live in git-merge-octopus.sh, specifically in that --no-ff does not affect the initial value of NON_FF_MERGE. I'm happy to submit a patch if someone can point me in the right direction. Sam