Files
holocron/plugins/git/.apm/skills/git-branches/references/merging.md
Defame1297 c5b207aee8 fix(git-branches): restore merging.md's provenance back-reference
references/sources.md credits atlassian-gitflow-tutorial with contributing
the `--no-ff` requirement on Gitflow supporting-branch merges to
references/merging.md, and merging.md:14 does carry that claim — but the
file's own source_keys listed only context7-git-htmldocs, so the chain was
one-directional.

Surfaced by repairing validate-provenance.sh's Contributing-files parser
in the same series; this skill was one of seven whose sources.md the old
parser could not read, so checks 4 and 5 had never run against it.

Refs #99
2026-08-30 20:50:51 +00:00

1.3 KiB

source_keys
source_keys
context7-git-htmldocs
atlassian-gitflow-tutorial

Merging one branch into another

Scope is fast-forward and merge-commit mechanics plus conflict resolution. Rebase belongs to git-commits; cherry-pick and revert to git-history.

  • Fast-forward — git merge <branch> advances the pointer with no merge commit when the target has not diverged.
  • True merge — git merge --no-ff <branch> forces a merge commit even when a fast-forward is possible. Gitflow requires it on every supporting-branch merge.
  • Squash merge — git merge --squash <branch> stages the combined diff without committing. Follow it with a git commit.
  • Octopus merge — git merge branch-a branch-b branch-c merges more than two branches at once, but fails outright on any conflict. Use sequential two-way merges when conflicts are likely.

Conflict resolution

When Git cannot auto-merge it writes conflict markers and stops mid-merge. Run git status to list the conflicted files, edit each to resolve its markers, then git add <file> and git merge --continue.

  • git merge --abort restores the pre-merge state.
  • git mergetool opens the configured merge tool.
  • git diff --diff-filter=U shows only the still-conflicted files.