如何使用git-archive导出特定提交?

SSE*_*ber 17 git export repository

之前我问了一个类似的问题,但回答不充分,所以我想我会在这里再问,但提供更多信息.我需要获得不同的和旧版本的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 
Run Code Online (Sandbox Code Playgroud)

解压缩后,它们最终完全一样.我无法弄清楚为什么或如何解决它.

Tod*_*obs 36

问题

在两个示例中,您都要导出master的提示.取出你的旗帜和参数,你有:

git archive master
Run Code Online (Sandbox Code Playgroud)

换句话说,你明确地通过指定存储在.git/refs/heads/master中的任何内容作为你的树来做这件事.

解决方案

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

git archive --format zip --output /full/path/to/zipfile.zip 29435bc
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用第二个推荐`git archive --format zip --output /full/path/to/zipfile.zip 29435bc`但是它导出了整个源代码,你能告诉我什么是问题我的确切评论是`$ git archive --format zip --output C:/Users/anishanth/zipfile.zip 2dbbc28` (3认同)
  • 是的,我确定为什么我是个白痴是正确的.感谢您确认并给我一些接受的东西.我很感激 :) (2认同)