我在git存储库中有一些php代码。我在同一个Web服务器上的多个vhost中使用该代码,但不同的vhost可能使用不同版本的代码。
如何在各种vhost httpdocs目录中创建特定标记的文件副本,而不必为每个目录复制.git目录?
我意识到我可以为每个vhost git clone / git checkout标签,只需删除.git目录,或者使用git archive然后解压缩文件,但我假设/希望有一个'正确'的git方式这样做......比如git archive,但文件被直接复制到所需的位置。
答案 0 :(得分:1)
git archive
(就像你提到的那样)是提取给定标记的子目录的正确命令。
git archive [-o | --output=<file>] <tree-ish> [<path>…]
<tree-ish>
将是您的标记但这意味着您可以处理该存档并将其解压缩到正确的位置,正如Bombe在评论中指出的那样,可以通过以下方式完成:
git archive --format=tar … | tar -C /path/to/target -xf -