bd = "!f() { git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d }; f"
I'm trying to alias a git command to remove all of my local merged branches.
When I put the bash command into my gitconfig as above, git complains about a bad config line:fatal: bad config line 26 in file /Users/johnsona/.gitconfig
I'd recommend making this a bash script in your PATH instead, and then calling that script in your git alias instead (or if it's in your PATH anyway, just name the file git-bd
).
For example, make the file ~/bin/git-bd
#!/usr/bin/env bash
git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d
Make the file executable with the command:
chmod +x ~/bin/git-bd
And make sure your .bashrc
, .bash_profile
or .bash_login
file has the line:
export PATH="$HOME/bin:$PATH"
And you can either just call git-bd
directly, or add the alias in your .gitconfig
like so:
bd = "!git-bd"
To add to this answer, the reason you are getting a bad config error may be due to the back-slashes. The git-config will read them as is, so you need to escape them again with a second backslash.
To make @torek's comment more visible and expand on it: there are a couple of issues with your command like this, when you want to put it in your gitconfig, and the result can be made a bit simpler.
Suppose you want to alias the following command:
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
|
so you have to prepend the command with !
(you already did this)"
so you either have to escape those with \"
or use single '
(also already fixed)\
so you have to escape it with \\
.Result:
[alias]
delete-merged-branches = ! git branch --merged | egrep -v '(^\\*|master)' | xargs git branch -d
You could also run in bash (not that git will escape \
for you, but you have to wrap in "
so you need to escape those)
git config --global alias.delete-merged-branches "! git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With