Yes, it should be the default, but ideally you have the option of preserving history (for PRs where that makes sense) and then your CI/CD should also check that the individual commits build and pass tests.
In general, your CI/CD should make sure that each commit that appears in the 'public' history of main builds and passes tests.
Comments
…and that’s why squash merge should be the default setting in PRs.
Yes, it should be the default, but ideally you have the option of preserving history (for PRs where that makes sense) and then your CI/CD should also check that the individual commits build and pass tests.
In general, your CI/CD should make sure that each commit that appears in the 'public' history of main builds and passes tests.
You can `git bisect --first-parent` just fine without needing to squash.