git and absolute Windows-style paths

Adam Dinwoodie
Wed Apr 20 21:17:00 GMT 2016

On Wed, Apr 20, 2016 at 04:37:34PM -0400, Eliot Moss wrote:
> I think this will do it:
> function git {
>   declare -a ARGS
>   for n in "$@" ; do ARGS+=("$(cygpath -u -- "${n}")") ; done
>   command git "${ARGS[@]}"
> }
> The reason this is a little more complicated than some other approaches
> might be is that it will also work for arguments that have space, e.g.,
> git add "C:/My Documents/foo.doc"

For a marginally simpler, or at least shorter, version, use `for n; do
...` rather than `for n in "$@"; do` -- Bash loops over positional
arguments by default if you don't specify a list with `in`.

Perfect for confusing anyone else (or indeed yourself at some point in
the future) who isn't familiar with the many, many idiosyncrasies of
shell languages.

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list