为什么这对我的.gitconfig来说是一个糟糕的配置行?

nhy*_*yne 7 git bash

bd = "!f() { git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d }; f"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用git命令来删除所有本地合并分支.
当我将bash命令放入我的gitconfig中时,git抱怨一个错误的配置行:
fatal: bad config line 26 in file /Users/johnsona/.gitconfig

Jac*_*ken 6

我建议改为在PATH中创建一个bash脚本,然后在你的git别名中调用该脚本(或者无论如何它都在你的PATH中,只需命名文件git-bd).

例如,制作文件 ~/bin/git-bd

#!/usr/bin/env bash
git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d
Run Code Online (Sandbox Code Playgroud)

使用以下命令使文件可执行:

chmod +x ~/bin/git-bd
Run Code Online (Sandbox Code Playgroud)

并确保您的.bashrc,.bash_profile.bash_login文件有行:

export PATH="$HOME/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

您可以git-bd直接调用,也可以在您的.gitconfig喜欢中添加别名:

bd = "!git-bd"
Run Code Online (Sandbox Code Playgroud)

要添加到此答案,您收到错误配置错误的原因可能是由于反斜杠.git-config将按原样读取它们,因此您需要使用第二个反斜杠再次将它们转义.

  • 事实上,它是唯一的反斜杠,导致"致命:文件中的错误配置行2".在我的测试中,加倍它会将错误更改为`语法错误:文件结束意外(期待"}")`(因为shell函数在`}之前需要一个分号. (4认同)