仅复制git标记中的文件

时间:2011-03-22 13:08:49

标签: git

我在git存储库中有一些php代码。我在同一个Web服务器上的多个vhost中使用该代码,但不同的vhost可能使用不同版本的代码。

如何在各种vhost httpdocs目录中创建特定标记的文件副本,而不必为每个目录复制.git目录?

我意识到我可以为每个vhost git clone / git checkout标签,只需删除.git目录,或者使用git archive然后解压缩文件,但我假设/希望有一个'正确'的git方式这样做......比如git archive,但文件被直接复制到所需的位置。

1 个答案:

答案 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 -