Derrick Stolee <stolee@xxxxxxxxx> writes: >> I do not recommend unparsed refspec and textually munging, by the >> way. Doesn't >> >> git fetch master:remotes/origin/master >> >> first parse to normalize the src/dst sides to turn it into >> >> git fetch refs/heads/master:refs/remotes/origin/master I tried to jug my memory in this area a bit by reading the relevant code. For non-wildcard refspec, e.g. with [remote "origin"] url = ../git.git/ fetch = master:remotes/origin/master tagopt = --no-tags you'd get $ git fetch -v From ../git * [new branch] master -> origin/master $ git for-each-ref 2e36527f23b7f6ae15e6f21ac3b08bf3fed6ee48 commit refs/remotes/origin/master It all happens inside remote.c::get_fetch_map(), I think. Thanks.