On Mon, 18 Dec 2017 12:30:23 +0000 "Carlsson, Magnus" <Magnus.Carlsson@xxxxxxxxx> wrote: > In a certain situation I would really need to fetch all commits > related to a specific commit (SHA). I have read the git fetch > documentation and found nothing regarding this. It only seems to > support fetching references. The documentation has been updated in version 2.15.0 to describe this. But as the commit message of commit 83558a412afa ("fetch doc: src side of refspec could be full SHA-1", 2017-10-18) says, this functionality was available earlier. > I found some traces on stack overflow: > https://stackoverflow.com/questions/14872486/retrieve-specific-commit-from-a-remote-git-repository > > Following that recommendation it feels like it almost works: > $ git fetch subrepo 50f730db793e0733b159326c5a3e78fd48cedfec:refs/remote/subrepo/foo-commit > remote: Counting objects: 2311, done. > remote: Total 2311 (delta 0), reused 0 (delta 0), pack-reused 2311 > Receiving objects: 100% (2311/2311), 703.64 KiB | 0 bytes/s, done. > Resolving deltas: 100% (1174/1174), done. > ----> So far so good, but then an error message appear: > error: Server does not allow request for unadvertised object 50f730db793e0733b159326c5a3e78fd48cedfec > ----> And nothing seems to be fetched. > > Is there a way to fetch a commit and any ancestors to that commit based on a SHA? You'll need to set uploadpack.allowTipSHA1InWant, uploadpack.allowReachableSHA1InWant, or uploadpack.allowAnySHA1InWant on the server. (This might need to be better documented - I see this documented for fetch-pack, but not fetch.)