2016-11-30 3 views
0

Я пытаюсь создать архив файлов в последних 3 коммитах, используя следующую команду.git archive: как игнорировать pathspec во время архива?

git archive -o archive.zip $(git diff --name-only HEAD~3) 

Но в последней фиксации я удалил несколько файлов, это показывает в diff выходе. поэтому я получаю эту ошибку:

fatal: pathspec 'public/uploads/5839529ba9381.png' did not match any files 

Как я игнорировать файлы, которые будут удалены в процессе фиксации архива мерзавца? Я пробовал аргумент --ignore-unmatch, но он не работает.

ответ

0

По существу, git archive используется для резервного копирования состояния в определенный момент времени, не подходит к модификациям дублирующей линии времени, то есть, вы не можете сохранить действие delete files по git archive.

Если вы хотите сделать резервную копию последних 3-х коммитов, вы можете использовать команду git bundle.

git bundle create last_three_commit.bundle HEAD~3..HEAD 

или

git bundle create last_three_commit.bundle -3 HEAD  

Пожалуйста, запустите git bundle --help для более подробной информации.

+0

команда не работает, есть ли две точки?, Должны ли быть пробелы? – bazi

+0

@bazi, извините, я пропустил имя файла в командной строке. Я обновил свой ответ. – gzh

+0

ОК это работает сейчас. могу ли я изменить формат на zip? – bazi