git-strip-merge man page

git-strip-merge — A git-merge wrapper that deletes files on a "foreign" branch before merging


git-strip-merge [git-merge options] [-M <commitmsg>] <branch> FILE...


git-merge that deletes files on "foreign" <branch> before merging.

Useful for ignoring a folder in <branch> before merging it with current branch. Works by deleting FILE(S) in a detached commit based on <branch>, and then performing the merge of this new commit in the current branch. Note that <branch> is not changed by this procedure. Also note that <branch> may actually be any reference, like a tag, or a remote branch, or even a commit SHA.

For more information, see <>



show help message and exit


do not use -q to supress normal output of internal steps from git checkout, rm, commit. By default, only git merge output is shown. Errors, however, are never supressed.

-M <message>, --msgcommit=<message>

message for the removal commit in <branch>. Not to be confused with the message of the merge commit, which is set by -m. Default message is: "remove files from '<branch>' before merge".

-m <message>, --message=<message>

message for the merge commit. Since we are not merging <branch> directly, but rather a detached commit based on it, we forge a message similar to git's default for a branch merge. Otherwise git would use in message the full and ugly SHA1 of our commit. Default message is: "Merge stripped branch '<branch>'".

For both commit messages, the token "<branch>" is replaced for the actual <branch> name.

Additional options are passed unchecked to git merge.

All options must precede <branch> and FILE(s), except -h and --help that may appear anywhere on the command line.


git-strip-merge design "photoshop/*"

See Also


Rodrigo Silva (MestreLion)