git使用文件路径中的括号添加文件上的补丁

时间:2013-01-16 14:37:06

标签: windows git cmd git-patch

我想在包含括号的完整路径的文件上运行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。

1 个答案:

答案 0 :(得分:3)

你很可能在你的shell错误地转出括号时出现问题。

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

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来说只是一个很好的前端,即使用圆括号也可以使用。