resolving-merge-conflicts
-
See the current state of the merge/rebase. Check git history, and the conflicting files.
-
Find the primary sources for each conflict. Understand deeply why each change was made, and what the original intent was. Read the commit messages, check the PRs, check original issues/tickets.
-
Resolve each hunk. Preserve both intents where possible. Where incompatible, pick the one matching the merge's stated goal and note the trade-off. Do not invent new behaviour. Complete the requested operation. If the operation is wrong or the intents cannot be reconciled from the available evidence, explain the conflict; abort only when the user authorizes cancelling the operation.
-
Discover the project's automated checks and run them, typically typecheck, then tests, then format. Fix anything the merge broke.
-
Finish the merge/rebase. Stage only the files resolved for this operation and commit; preserve unrelated staged and unstaged work. If rebasing, continue the rebase process until all commits are rebased.