A merge commit landed on master, breaking the project's linear history requirement.
* 5fc5d7ecc Merge remote-tracking branch 'origin/develop' (HEAD → master)
|\
| * 1172ababb fix: rescue PaymentError and render error from Stripe (#5469)
* | 5d617ca38 fix: rescue PaymentError and render error from Stripe (#5469)
|/
* 89e7d6eff fix: deduplicate accounting permissions when both V1 and V2 are enabled (#5468)
Two copies of PR #5469 exist — one on each branch — with identical content but different SHAs.
The merge commit (5fc5d7ecc) joined them, creating a non-linear fork.
Someone ran git merge origin/develop on master instead of git rebase.
This created a merge commit that joins two parallel histories.
We want master to point at the same commit as develop's version of the history
(1172ababb), which is already linear. Since develop is ahead of master (has
commits #5471 and #5472), we reset master to its latest commit.
# Confirm the merge commit exists
git log --oneline --graph origin/master -5
# Confirm develop has a clean linear history
git log --oneline --graph origin/develop -5
# Confirm both PR #5469 commits have identical content
git diff 5d617ca38 1172ababb --stat
# Should show no differences# Check that develop's tree is a superset of master's tree
git diff origin/master origin/develop --stat
# This should only show NEW commits on develop, nothing missingSince develop is ahead of master and contains all the same changes (plus more), the safest fix is to point master at develop's HEAD:
# Switch to master
git checkout master
# Reset master to match develop (fast-forward to develop's HEAD)
git reset --hard origin/develop
# Force push to fix remote
git push --force-with-lease origin master# Confirm linear history
git log --oneline --graph origin/master -5
# Should show a clean linear line with no merge commits
# Confirm master and develop point to the same commit
git log --oneline -1 origin/master
git log --oneline -1 origin/develop
# Should show the same SHA* a46d414aa fix: earned_on timing bug in payment services + job tracking in global admin (#5471)
* 40649fcdb feat: Add extra columns to competitions tables (#5472)
* 1172ababb fix: rescue PaymentError and render error from Stripe (#5469)
* 89e7d6eff fix: deduplicate accounting permissions when both V1 and V2 are enabled (#5468)
* 59115b2ec fix: gatekeep competitions
No merge commit, clean linear history.
Configure git to always rebase when pulling:
git config --global pull.rebase trueAnd protect master/develop with branch protection rules that:
- Require linear history (no merge commits)
- Only allow squash or rebase merges from PRs