我以前问过类似的问题,但回答得不够充分,所以我想在这里再问一次,但提供更多信息。我需要获取不同版本和较旧版本的git存储库,但我在这方面遇到了问题。我试过的是
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 在解压缩后,它们最终是完全相同的。我不知道为什么或者怎么解决这个问题。
发布于 2012-06-14 00:24:00
问题所在
在这两个示例中,您都是在导出master的提示。拿出你的旗帜和参数,你就得到了:
git archive master换句话说,通过将存储在.git/refs/heads/master中的任何内容指定为树状结构,您就是在显式地对自己执行此操作。
解决方案
如果您想导出不同的提交,则需要提供与gitrevisions(7)一致的树状结构。例如,要导出提交29435bc,您可以指定:
git archive --format zip --output /full/path/to/zipfile.zip 29435bc发布于 2018-01-30 18:24:15
分辨率
这是最新版本Git的预期行为。远程Git存储库不允许客户端访问任意SHA1s。请求的对象应由ref (即文件名)访问。
https://stackoverflow.com/questions/11018411
复制相似问题