On Fri, Jan 5, 2018 at 11:59 AM, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote: > Not sure if this is intended or a bug, but with the following configuration: > > $ git config --global merge.ff false > > I am not able to merge my topic branch into master with squash option: > > $ git checkout master > $ git merge --squash topic > fatal: You cannot combine --squash with --no-ff. > > I'm not sure why a non-fast-forward merge would prevent a squash > merge, since by its very nature a squashed merge is not a fast forward > merge (or maybe it is if you only have one commit). > > Is there an issue here? I like fast forward merges to be off by > default, since I want to control when they happen. Most of my merges > do not use --squash, so I'm catering to the common case. > > Need advice on how to get past this issue. Thanks in advance. The easiest way to move forward is probably to pass "--ff" on the command line to override the config, when you're using "--squash". As for why the two aren't allowed together, my assumption would be because if you're only squashing a single commit "--squash" and that commit is fast-forward from the target, a new commit is not created and instead the target branch is fast-forwarded. With "--no-ff", it's questionable what "--squash" should do in that case. Fast-forward anyway? Rewrite the commit simply to get new committer details and SHA-1? Hope this helps! Bryan Turner