![](/img/trans.png)
[英]GitHub error "fatal: bad config file line 1 in .git/config" when in git shell
[英]Git shell command alias giving a "bad config file" error
我正在处理以下 git 别名
[alias]
pushup = !git push --set-upstream origin `git branch | egrep "^\*" | awk -F"*" '{print $NF}'`
它应该在将上游设置为当前分支的同时执行 git push 。
命令
git push --set-upstream origin `git branch | egrep "^\*" | awk -F"*" '{print $NF}'`
在命令行上可以正常工作,但是当我尝试将其用作 git 别名时,出现错误的配置文件错误。
显然,我对 git 别名的格式一无所知。 有谁想开导我吗?
我不确定出了什么问题,但以下简化的别名对我有用:
[alias]
pushup = !git push --set-upstream origin $(git branch | awk '/^*/{print $2}')
您可以依靠awk
对空格的分割来自动获取分支名称作为第二个字段,而不是 grepping *
然后对其进行拆分,并使用awk
do grep
的工作。
Vim 将\\*
高亮显示为一个错误,当我尝试使用它时,我得到了你得到的错误(我使用echo
进行调试:D):
所以这就是错误的原因。 我仍然不知道为什么。
我想你也可以使用这个 SO post 中更简单的命令:
[alias]
pushup = !git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)
错误的原因是\\
在解析别名时被识别为转义字符。 解析器期望在\\
之后需要转义的东西,但星号不符合要求。
你应该逃避\\
与第二反斜线使解析器高兴,他传到egrep
。 像这样:
[alias]
pushup = !git push --set-upstream origin `git branch | egrep "^\\*" | awk -F"*" '{print $NF}'`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.