git-submodule:nodejs 项目中的错误变量名称

问题描述 投票:0回答:1

这可能与 git-submodule: bad variable name 相同的问题,但提供了附加信息以便更轻松地解决问题

$ git submodule summary
/usr/lib/git-core/git-submodule: 88: export: made.: bad variable name
* modules/example2 0000000...1945c42 (1):
  > Oops, uncomment

set -x
上添加
/usr/lib/git-core/git-submodule
来调试错误时,错误发生前会输出以下内容:

... [cut]
+ eval_gettext usage: $dashless $USAGE
+ gettext usage: $dashless $USAGE
+ envsubst --variables usage: $dashless $USAGE
+ export PATH No variable replacements made.
/usr/lib/git-core/git-submodule: 88: export: made.: bad variable name

当我直接运行

envsubst
时,输出如下:

$ envsubst --variables 'usage: $dashless $USAGE'
No variable replacements made.
$ which envsubst
/home/tno/repos/example/node_modules/.bin/envsubst
$ envsubst
0.15.0

我的路径是

$ echo $PATH
/home/tno/repos/example/node_modules/.bin:/home/tno/repos/example/bin:/home/tno/.local/bin:[cut]:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:[cut]
node.js git npm
1个回答
0
投票

问题是 git 正在尝试使用

envsubst
npm 包,而不是来自
gettext GNU 项目
envsubst。尝试从您的 PATH 中删除
/home/tno/repos/example/node_modules/.bin
,看看是否可以解决问题。

  • 您可以确保 PATH 中

    /usr/bin
    位于
    /home/tno/repos/example/node_modules/bin
    之前。

  • 您可以围绕

    git
    制作一个包装脚本,在调用真正的
    git
    之前调整 PATH。确保包装器的目录位于 PATH 中的
    /usr/bin
    之前。在您的示例中,放置此脚本的几个好地方是
    ~/.local/bin/git
    ~/repos/example/bin/git

#!/bin/sh

PATH=/usr/bin:$PATH git "$@"
© www.soinside.com 2019 - 2024. All rights reserved.