如何在git中为已合并的分支设置别名并删除它们

7

我正在尝试为命令设置别名:

git branch --merged | grep -v "\*" | grep -v master | xargs -n 1 git branch -d

这是我的.gitconfig文件:

摘自此答案

[credential]
    helper = wincred
[user]
    name = Doron Grinzaig
    email = doron@doNotSpamMe.Suckers
[push]
    default = simple
[alias]
    db = git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 git branch -d
    unstage = reset HEAD --

但是现在当我尝试编辑.gitconfig文件时,会出现以下错误:
$ git config --global --edit
fatal: bad config file line 9 in C:\Users\Doron Grinzaig/.gitconfig

我被告知需要使用 ! 作为 git 别名中运行 bash 脚本的方法,但是以下代码仍然返回相同的错误:
[alias]
    db = !git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 git branch -d

我正在使用Windows版的Git Bash。

“坏的配置文件”错误可能是由其他原因引起的:不良的EOL标记(\r\n而不是\n,或者反过来,我不知道git在Windows上期望什么),也许是某个地方有一个不可打破的空格...尝试删除并重新编写整个[alias]部分。 - LeGEC
1个回答

11

尝试在第一个grep命令中转义引号和反斜杠:

[alias]
    db = !git branch --merged | grep -v \"\\*\" | grep -v master | grep -v dev | xargs -n 1 git branch -d

1
可以简化一下:db = !"git branch --merged | grep -vE 'main|master|\\*' | xargs -n 1 git branch -D" - slm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接