Concept and mechanism
A branch is a movable reference to a commit. Two names may point to the same commit and later diverge. Merge integrates histories and can create a commit with multiple parents. If the destination is already an ancestor of the source, a fast-forward can advance the reference without creating a merge commit. Rebase reapplies changes onto a new base, normally producing new commits with different identifiers. Effects on people who already consumed those commits must inform the decision.
Guided application
Before integrating, confirm local state and the comparison base. When a conflict occurs, identify both changes’ intent and reconstruct a coherent result. Removing markers does not guarantee correct behavior. After resolving, stage the files and use the continuation command for the specific operation. If abandoning the operation, use the appropriate abort option, considering that prior local changes can complicate recovery. Practice in an exercise repository before applying this to a shared branch.
One branch changes seconds to milliseconds and another changes the timeout from 5 to 8. Choosing one side mechanically may lose either the functional change or the unit conversion.
Common pitfalls
Rebasing consumed history without coordination; accepting ours or theirs without understanding units or business rules.
Related topics: Remotes and coordinated publication · Reverse changes and preserve work
Conflict resolution integrates intent as well as text.
Reference: Git: integrating histories · Git 2.56; workflow concepts compatible with modern Git 2.x