I don't have a local code copy/etc, I just want to download a single specific git commit so I can view it. I have the url for the git repository:
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
and the commit hash:
ee9c5cfad29c8a13199962614b9b16f1c4137ac9
How can I download just this commit using git (I don't want the whole repo, just the one commit patch)? I have read the man pages for git-pull and git-cherry-pick and fiddled with the commands with no luck.
Cloning the repo really isn't an option because some of the Kernel repositories are exceedingly large and slow to download (hours).
How do I pull a specific commit? The short answer is: you cannot pull a specific commit from a remote. However, you may fetch new data from the remote and then use git-checkout COMMIT_ID to view the code at the COMMIT_ID .
This would appear to be impossible. According to a discussion on kernel.org, the protocol will only allow named refs to be fetched. If you don't wish to download the snapshot from the git website, you'll have to clone the entire repo.
(You may wish to read the manuals for git-fetch and git-ls-remote.)
In the general case, you can do this using the --remote
flag to git archive
, like so:
$ git archive -o repo.tar --remote=<repo url> <commit id>
So in your example, you'd use:
$ git archive -o repo.tar --remote=git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git ee9c5cfad29c8a13199962614b9b16f1c4137ac9
That'll give you the state of the repo at that point in time. Note that you won't get the whole repo, so you can't actually interact with the upstream repo with what you've downloaded.
However, using git archive
remotely has to be enabled server-side, and it isn't on the Linux kernel's Git server. You can, however, grab a copy by using a URL of the form http://git.kernel.org/?p=<path to repo>;a=snapshot;h=<commit id>;sf=tgz
. So for your repo, you could use, say, wget or curl to grab the file using that URL.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With