How do I export a specific commit with git-archive?
Solution 1
The Problem
In both your examples, you are exporting the tip of master. Take out your flags and arguments, and you have:
git archive master
In other words, you're explicitly doing this to yourself by specifying whatever is stored in .git/refs/heads/master as your tree-ish.
The Solution
You need to provide a tree-ish in accordance with gitrevisions(7) if you want to export a different commit. For example, to export commit 29435bc, you could specify:
git archive --format zip --output /full/path/to/zipfile.zip 29435bc
Solution 2
Resolution
This is an expected behaviour for the newest versions of Git. Remote Git repositories do not allow clients to access arbitrary SHA1s. The requested objects should be accessed by a ref (i.e. file name).
git-upload-archive-archiver-died-with-error
SSEMember
I'm a Software Engineering college student at Rochester Institute of Technology.
Updated on July 29, 2022Comments
-
SSEMember almost 2 years
I asked a similar question before, but it was answered inadequately so I thought I would ask again here but providing more information. I need to get different and older versions of a git repository and I'm having trouble with that. What I've tried is
git checkout master~X git archive --format zip --output /full/path/to/zipfile.zip master git checkout master git checkout master~Y git archive --format zip --output /full/path/toDifferent/zipfile.zip master git checkout master
After unzipping both, they end up being exactly the same. I can't figure out why or how to fix it.