2

我想git archive在 repo 的任何地方使用并包含整个 repo。

name@host:~/repo$ git archive HEAD -o /path/to/archive/repo.tar.gz 

只有当我的工作目录是 repo 根目录时,上述命令才能正常工作。当我在asset子目录中工作时:

name@host:~/repo/asset$ git archive HEAD -o /path/to/archive/repo.tar.gz 

tarball 将包含asset子目录的内容,而不是整个 repo。

git-archive的官方文档:

<path>

如果没有可选的路径参数,则当前工作目录的所有文件和子目录都包含在存档中。如果指定了一个或多个路径,则仅包括这些路径。

但这仅在我指定回购根目录的绝对/相对路径时才有效。这很烦人,因为 Git 必须非常清楚 repo 根在哪里,所以我不需要告诉它。

编辑: 似乎该<path>参数仅用于限制在当前工作子目录的存档中包含的内容。它对打破子目录限制毫无帮助。

是否有一个命令可以创建整个 repo 的 tarball,而不管我碰巧在 repo 中的哪个子目录中工作?

4

0 回答 0