2010-05-26 3 views

ответ

14

git archive создает tar-архив, поэтому вам не нужно передавать его выходной tar, действительно, он не делает то, что вы ожидаете. Вы создаете tar-архив ветви сцены и соединяете его с обычной командой tar, которая не использует свой стандартный ввод, но создает собственный архив htdocs в рабочем дереве, независимо от git.

Try:

git archive stage >stage.tar 

или для сжатого архива:

git archive stage | gzip >stage.tar.gz 

просто заархивировать HTDOCS вложенную вы можете сделать:

git archive stage:htdocs | gzip >stage-htdocs.tar.gz 

или, чтобы включить папку наименование: в архиве:

git archive --prefix=htdocs/ stage:htdocs | gzip >stage-htdocs.tar.gz 

или более просто:

git archive stage htdocs | gzip >stage-htdocs.tar.gz 
+0

Это последнее будет архивировать корень дерева коммита и префикс каждого путь к файлу с 'HTDOCS /' (например, 'htdocs/rootfile.c',' htdocs/sub/file.pl' и 'htdocs/htdocs/htdocfile.html'). Он должен либо указать tree-ish 'stage: htdocs' (к которому добавлен префикс), либо вы можете просто использовать« git archive stage htdocs ». –

+0

@ Chris Johnsen: Спасибо, на самом деле это была ошибка копирования и вставки; Я имел в виду, что это вариант предыдущей команды. –

Смежные вопросы