On 1/17/2020 2:20 PM, Jeff King wrote: > On Fri, Jan 17, 2020 at 03:28:59PM +0000, Derrick Stolee via GitGitGadget wrote: >> Add a --[no-]update-remote-refs option to 'git fetch' which defaults >> to the existing behavior of updating the remote refs. This allows >> a user to run >> >> git fetch <remote> --no-update-remote-refs +refs/heads/*:refs/hidden/* >> >> to populate a custom ref space and download a pack of the new >> reachable objects. This kind of call allows a few things to happen: > But I think there's already a way to do that: the --refmap option added > by c5558f80c3 (fetch: allow explicit --refmap to override configuration, > 2014-05-29). Using an empty refmap like: > > git fetch --refmap= <remote> refs/heads/*:refs/hidden/* > > should do what you want. It suppresses the use of the configured > refspecs, so we don't find any opportunistic mappings to make. You're absolutely right. There are details at [1]. The tricky thing is that the documentation makes it look like you need a value there, and if you supply a value without a refspec argument, an error is given: $ git fetch origin --refmap="+refs/heads/*:refs/hidden/origin/*" fatal: --refmap option is only meaningful with command-line refspec(s). I think I'll follow up with a documentation patch to point out that an empty --refmap value will ignore the configured refspec and rely only on the provided refspec argument. Thanks! -Stolee [1] https://git-scm.com/docs/git-fetch#_configured_remote_tracking_branches_a_id_crtb_a