git 存档可以包含 .git 项目所在的目录吗?

Can git archive include the directory that the .git project lives in?

git 存档可以包含 .git 项目所在的目录吗?

例如,假设我的目录结构是这样的:

-- /my-project-dir
----- /.git
----- /css
----- index.html
----- scripts.js

默认情况下,当我执行 git 存档时,我最终会得到一个 ZIP 文件,如下所示:

-- my-project-dir.zip
----- /css
----- index.html
----- scripts.js

我想知道 archive 命令是否可以包含父目录,例如:

-- my-project-dir.zip
----- /my-project-dir
-------- /css
-------- index.html
-------- scripts.js

使用--prefix选项:

$ pwd
/tmp/foo
$ ls -A
bar  .git
$ git archive --prefix foo/ -o foo.tar master
$ tar tf foo.tar
foo/
foo/bar

请注意在 foo/ 中包含尾部斜杠,否则您最终会在每个文件名前加上前缀!