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
1.3 KiB
1.3 KiB
source_keys
| source_keys | ||
|---|---|---|
|
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 agit commit. - Octopus merge —
git merge branch-a branch-b branch-cmerges 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 --abortrestores the pre-merge state.git mergetoolopens the configured merge tool.git diff --diff-filter=Ushows only the still-conflicted files.