1

我正在尝试使用命令行提交消息将提交推送到我的存储库:

git commit -m "some commit message"

但我不断收到以下错误:

error: pathspec 'commit' did not match any file(s) known to git.
error: pathspec 'message' did not match any file(s) known to git.

我已经看到这个问题在明显的情况下得到了回答,比如在推送提交时忘记使用“-m”标志(这里),但我使用的是正确的标志——这种确切的语法适用于其他机器上的克隆相同的存储库。在麻烦的(Red Hat 4.1.2)机器上,我正在使用:

git version 1.7.3.3

如果我尝试使用长格式标志,我会得到同样的错误:

git commit --message="some commit message"

有没有人见过这个?我在这台机器上没有 root 访问权限,所以我无法更新,但我想知道这是否是上述版本的已知问题(虽然没有从谷歌搜索中找到任何问题),或者可能是这个系统上的 git 配置?

编辑:解决了!

我想我找到了问题所在。我对 Red Hat 不太熟悉,但我发现可执行文件/usr/local/bin/git指向一些名为run-rhel 的可执行文件,例如

/usr/local/bin/git -> run-rhel

而且这个可执行文件弄乱了 git 的命令结构。我将真正的 git 可执行文件添加到我的 $PATH 之前:

export PATH=/path/to/real/executable:$PATH

现在一切似乎都正常了!感谢您的快速回复!

4

1 回答 1

0

看起来你的 shell 弄乱了双引号。从错误消息中,我认为 git 看到了这个命令:

git commit -m some commit message

因此它将“提交”(该词的第二次使用)和“消息”解释为路径规范,将“某些”解释为提交消息。

最好尝试看看需要引用的其他(非 git)命令是否也有这个问题。例如,以下是否显示目录中的所有文件或错误消息:

ls "*"
于 2012-08-09T15:29:08.520 回答