You are most likely having a problem with your shell wrongly escaping your parenthesis.
Using the following, worked for me (no need for quotes, only escaping the parenthesis with backslash):
git add -p \(External\)/Project/Filename.cs
in order to do the escaping right, I find it very helpful to use the auto-completion capabilities of bash, something like the following helps constructing the filename in a "bash-safe" way.
git add -p \(E[tab]...
if this doesn't help, you could simply try to first cd
into "(External)/Project" and then use
git add -p Filename.cs
UPDATE
if you are using W32 (which is obviously the case), then i can confirm the problem.
the only workaround i found so far is to use git gui
, which is simply a nice front-end to git add -p
and which seems to work, even with parentheses.