2013-06-27 11 views
16

Używam git-archiwum do archiwum podkatalog w repo git, tak:git-archiwum podkatalogu -

git archive -o ../subarchive.zip HEAD subdir/* 

Jednak archiwum wynikowe utrzymuje strukturę podkatalog/katalogów, czyli treści są:

subdir/ 
    whatever.js 
    morestuff.js 

Kiedy rzeczywiście chcę what.js i morestuff.js w katalogu głównym archiwum.

Jak to zrobić? Dzięki.

Odpowiedz

25

Można to zrobić tak:

git archive -o ../subarchive.zip HEAD:subdir 

Nawiasem mówiąc, w łatwy sposób odtworzyć za pomocą polecenia i zobaczyć, co będzie generować jest, jeśli używasz go w tej formie:

git archive --format=tar HEAD:subdir | tar t 
git archive --format=tar HEAD subdir | tar t 
# ... and so on ... 

Gdy zobaczysz to, czego szukasz, możesz zmienić format i użyć flagi -o, aby utworzyć archiwum.

+0

Czy można to skutecznie zrobić w przypadku zdalnych repo, np. pobrać tylko jedną dir/jedną rewizję gigantycznego repo, które nie jest praktyczne do klonowania? Próbowałem '--remote', ale było to absurdalnie powolne. –

+0

Działa, świetnie. Próbowałem zrozumieć, która część dokumentacji GIT mówiła o tym, ale nie mogła. Czy możesz rozwinąć pls? – Meglio

+0

@Meglio 'git archive --help', daj mi znać, jeśli nie możesz znaleźć czegoś (i proszę, bądź jak najbardziej konkretny) – janos