我想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 中的哪个子目录中工作?