---
name: "git-sed"
section: "1"
platform: "linux"
package: "git-extras"
version: "7.3.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/git-sed"
---

# git-sed(1)

replace patterns in git-controlled files

## NAME

**git-sed** - replace patterns in git-controlled files

## SYNOPSIS

**git-sed** \[ -c \] \[ -f *flags* \] *search* *replacement* \[ *flags* \] \[ -- *pathspec* \]

## DESCRIPTION

Run git grep and then send results to sed for replacement with the given flags, if they are provided via -f or as the third argument.

Also runs git commit if -c is provided.

## OPTIONS

\-c

commit the resulting changes with a standard commit message detailing the exact command ran. It will fail if there are unstaged changes.

\<flags\> -f \<flags\>

will use the given regex flags in the sed command (for example "g" replaces multiple times on the same line).

\<search\>

the pattern passed to grep and to the first part of the sed expression.

\<replacement\>

the replacement passed to sed, the second part of the sed expression.

\-- \<pathspec\>

limit the paths which will be applied on. Read https://git-scm.com/docs/gitglossary.html#Documentation/gitglossary.txt-aiddefpathspecapathspec for the supported patterns of pathspec.

## EXAMPLES

```
$ git sed 'my_function' 'do_stuff'
# ... only does the changes, without committing
$ git commit -m"use proper function name"
$ git sed -c 'do_stuff' 'stuff'
# .. does the changes and a commit
$ git sed -f g do_stuff stuff
# .. g is actually pretty important, otherwise you will miss some
# stuff!
$ git sed 'my_method' 'do_stuff' -- lake/
# ... only replace 'my_method' occurs under lake/.
```

## AUTHOR

Written by Antoine Beaupré \<*anarcat@debian.org*\> from inspiration by https://github.com/da-x/git-search-replace and https://stackoverflow.com/questions/9651898/is-there-a-git-sed-or-equivalent

## REPORTING BUGS

\<*https://github.com/tj/git-extras/issues*\>

## SEE ALSO

\<*https://github.com/tj/git-extras*\>
