Eu simplesmente executaria o git clone
como você descreveu e, em seguida, excluiria os diretórios .git
que estão dispersos em todo o diretório clonado.
$ find puppet-heat/ -name '.git' -exec rm -fr {} +
Eu posso fazer git clone
como assim ...
git clone https://github.com/stackforge/puppet-heat.git
... sem problemas. Mas eu quero excluir todas as coisas meta meta que vem com a clonagem, então eu pensei em usar git archive
mas eu recebo este erro:
$ git archive --remote=https://github.com/stackforge/puppet-heat.git
fatal: Operation not supported by protocol.
Alguém sabe por que ou o que estou fazendo errado?
Você pode usar o suporte ao svn do github:
svn export https://github.com/user/project/trunk
Mais detalhes aqui:
git archive ainda é o caminho certo a seguir:
git clone link cd puppet-heat git archive
A razão pela qual sua abordagem não funciona é - obviamente - que o github não suporta (ou não) o arquivamento remoto. Isso significaria que o arquivo é realmente criado como um arquivo no servidor github que é então enviado.
Então, basta clonar o repositório e executar o arquivo git no seu clone.
FYI eu acertei o mesmo erro com o bitbucket. Eu mudei protocolos de https para ssh e funcionou.
por exemplo:
git archive [email protected]/stackforge/puppet-heat.git
É claro que você precisa configurar as chaves pública / privada para que isso funcione.
Ouvi dizer que o github não suporta o remoting, mas para outros com esse problema, o problema acima resolveu para mim, pelo menos.
Como nosso repo é enorme, clonar não é realmente uma opção se apenas quisermos fazer o equivalente a uma exportação de svn.