#!/bin/sh # git merge-overlay BRANCHES... - merge all BRANCHES filewise, later branch wins gitdir=$(git rev-parse --git-dir) printf no-ff >"$gitdir"/MERGE_MODE true >"$gitdir"/MERGE_HEAD msg="Merge overlay branches" for branch; do git checkout --theirs "$branch" -- :/ printf '%s\n' $branch >>"$gitdir"/MERGE_HEAD msg="$msg $branch" done printf "%s\n" "$msg" >"$gitdir"/MERGE_MSG git commit