--git-commit will squash all the commits in the commit range into one. --squash grabs the full diff from trunk. The two are currently mutually exclusive.
You could also imagine a world in which git-commit was more like dcommit (treats each commit in the range as a separate patch). If we did that, then it would make sense to allow both. In other words, ideally, --git-commit would only treat the commit range as a single patch if you also specified --squash.
But, since the code currently squashes, I think we should throw an error for now if you specify both and add a FIXME for the git-commit behavior.
Is this for webkit-patch or check-webkit-style? IIRC, check-webkit-style also has these two options.
We've decided to replace --squash with --git-commit=*.