1

我想git add -p在包含括号的完整路径的文件上运行,如下所示:

git add -p "(External)/Project/Filename.cs"

但是,当我运行它时,我收到以下错误:

sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `git ls-files -- (External)/Project/Filename.cs'

我也尝试过使用 转义括号\,但我得到了同样的错误。为了比较,正则git add表达式的括号没有问题。

如何将此文件传递给git add -p

编辑:我使用 Windows 似乎很相关。

4

1 回答 1

5

您的外壳错误地转义括号很可能有问题。

使用以下内容,对我有用(不需要引号,只用反斜杠转义括号):

git add -p \(External\)/Project/Filename.cs

为了正确进行转义,我发现使用 bash 的自动完成功能非常有帮助,如下所示有助于以“bash-safe”方式构造文件名。

git add -p \(E[tab]...

如果这没有帮助,您可以简单地尝试先cd进入“(外部)/项目”,然后使用

git add -p Filename.cs

更新

如果您使用的是 W32(显然是这种情况),那么我可以确认问题。到目前为止,我发现的唯一解决方法是使用git gui,这只是一个不错的前端,git add -p并且似乎可以工作,即使有括号也是如此。

于 2013-01-16T15:25:15.757 回答