---
name: "git-strip-merge"
section: "1"
platform: "linux"
package: "git-restore-mtime"
version: "2022.12-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/git-strip-merge"
---

# git-strip-merge(1)

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

## NAME

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

## SYNOPSIS

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

## DESCRIPTION

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 \<http://stackoverflow.com/questions/3111515\>

## OPTIONS

- **-h**, **--help**

  show help message and exit

- **-v**, **--verbose**

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

- **-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.

## EXAMPLE

```
git-strip-merge design "photoshop/*"
```

## SEE ALSO

**https://github.com/MestreLion/git-tools**

## AUTHOR

Rodrigo Silva (MestreLion) linux@rodrigosilva.com
