Может ли архив git включать каталог, в котором находится проект.git?

Может ли архив 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

1 ответ

Решение

Использовать --prefix опция:

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

Будьте осторожны, чтобы включить косую черту в foo/иначе вы получите префикс, добавленный к каждому имени файла!

Другие вопросы по тегам