GitHub is nearly 15 years old, and there is still no way for a pull request merge to be fast-forward-only (linear history) AND preserve the same commits as pull request source branch.<p>Today, if you want to preserve commits in your development branch (and not squash them; squashing is great sometimes), you have two bad options:<p>1. merge commits. This is bad because linear history is an excellent risk reduction mechanism for a production build.<p>2. rebase commits. These would be ok, except when github rebases the commits into linear history, the commit hashes change (they are new commits) even though the patch and metadata are identical. So your development branch itself constantly needs to be rebased on your production branch, because the commits being added to production are newly created by github rebase & merge.<p>What we need is a fourth option "Fast-forward merge", which requires linear history and only preserves (ie copies) commits from the PR source branch into the target branch.<p>How can we get GitHub to care about this and action on it?