Can I fetch an arbitrary commit by sha1?
- From
Christian Halstrick <christian.halstrick@gmail.com>
- Date
- Oct 2, 2014, 13:57 UTC
- Message-ID
- <CAENte7htO13s91UJFNzW4aBhsGxE=LpnvaZfce+vqQU5+a-cYg@mail.gmail.com>
I always though during fetch I have to specify a refspec and that a sha1 would not be accepted as a ref. Firing some like 'git fetch origin <sha1>' should be forbidden. But in fact I see that such a fetch command succeeds if you already have that object in your local repo.
My question: is it allowed to fetch sha1's? Shouldn't fetch fail if you try it?
See here:
> git clone -q https://github.com/chalstrick/dondalfi.git > cd dondalfi > git ls-remote
From https://github.com/chalstrick/dondalfi.git ce08dcc41104383f3cca2b95bd41e9054a957f5b HEAD af00f4c39bcc8dc29ed8f59a47066d5993c279e4 refs/foo/b1 ...
> git show af00f4c39bcc8dc29ed8f59a47066d5993c279e4
fatal: bad object af00f4c39bcc8dc29ed8f59a47066d5993c279e4
> git fetch origin af00f4c39bcc8dc29ed8f59a47066d5993c279e4
error: no such remote ref af00f4c39bcc8dc29ed8f59a47066d5993c279e4
> git fetch origin refs/foo/b1
remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From https://github.com/chalstrick/dondalfi * branch refs/foo/b1 -> FETCH_HEAD
> git fetch origin af00f4c39bcc8dc29ed8f59a47066d5993c279e4
From https://github.com/chalstrick/dondalfi * branch af00f4c39bcc8dc29ed8f59a47066d5993c279e4 -> FETCH_HEAD
Ciao Chris