24

我之前问过一个类似的问题,但回答得不够充分,所以我想我会在这里再问一次,但提供更多信息。我需要获得不同版本和旧版本的 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 

将两者解压缩后,它们最终完全相同。我不知道为什么或如何解决它。

4

2 回答 2

47

问题

在您的两个示例中,您都在导出master的提示。拿出你的旗帜和论据,你有:

git archive master

换句话说,您通过将存储在.git/refs/heads/master中的任何内容指定为您的树状结构来明确地对自己执行此操作。

解决方案

如果要导出不同的提交,则需要根据gitrevisions(7)提供树状结构。例如,要导出提交29435bc,您可以指定:

git archive --format zip --output /full/path/to/zipfile.zip 29435bc
于 2012-06-13T16:23:59.527 回答
3

解析度

这是最新版本的 Git 的预期行为。远程 Git 存储库不允许客户端访问任意 SHA1。请求的对象应通过 ref(即文件名)访问。

git-upload-archive-archiver-deed-with-error

于 2018-01-30T10:24:15.297 回答