Eu encontrei uma coleção de slackbuilds, alguns que eu preciso existem no GitHub. https://github.com/PhantomX/slackbuilds/ Não quero obter todo o git.
git clone https://github.com/PhantomX/slackbuilds.git
Mas só pegue um slackbuild, para este .
Como fazer isso? É possível?
Respostas:
Você terminará o download de todo o histórico, por isso não vejo muitos benefícios nele, mas é possível fazer o checkout de partes específicas usando um checkout "esparso". Citando esta postagem Stack Overflow :
Você pode estar melhor usando um clone superficial também. Em vez do
git pull
comando fornecido anteriormente, tente:fonte
error: Sparse checkout leaves no entry on working directory
depois de fazer um git pull depois de fazer a modificaçãocore.sparseCheckout
e.git/info/sparse-checkout
Tente o seguinte:
fonte
/trunk
e remover/tree/master
. Mais aquigit clone --filter
do Git 2.19Essa opção realmente ignora a busca de objetos desnecessários do servidor:
O servidor deve ser configurado com:
Não há suporte para servidor a partir da v2.19.0, mas ele já pode ser testado localmente.
TODO:
--filter=blob:none
ignora todos os blobs, mas ainda busca todos os objetos da árvore. Mas em um repositório normal, isso deve ser pequeno se comparado aos próprios arquivos, portanto, isso já é bom o suficiente. Perguntado em: https://www.spinics.net/lists/git/msg342006.html Os Devs responderam que um--filter=tree:0
está sendo trabalhado para fazer isso.Lembre-se de que isso
--depth 1
já implica--single-branch
, consulte também: /programming/1778088/how-to-clone-a-single-branch-in-gitfile://$(path)
é necessário para superar asgit clone
travessuras de protocolo: /programming/47307578/how-to-shallow-clone-a-local-git-repository-with-a-relative-pathO formato de
--filter
está documentado emman git-rev-list
.Foi feita uma extensão ao protocolo remoto Git para suportar esse recurso.
Documentos na árvore Git:
Teste
GitHub upstream .
Saída no Git v2.19.0:
Conclusões: todos os blobs de fora
d1/
estão ausentes. Por exemplo0975df9b39e23c15f63db194df7f45c76528bccb
, o qued2/b
não existe após o check-outd1/
.Note-se que
root/root
emybranch/mybranch
também estão desaparecidos, mas--depth 1
esconde que a partir da lista de arquivos ausentes. Se você remover--depth 1
, eles serão exibidos na lista de arquivos ausentes.fonte
Finalmente consegui isso graças ao que foi dito acima. Eu estava editando o arquivo diretamente, obtendo erros acidentalmente incluindo as aspas. Seu arquivo .git / info / sparse-checkout deve incluir apenas o diretório, sem aspas. Aqui está um exemplo: Este projeto gigantesco: https://github.com/SharePoint/sp-dev-fx-webparts , eu queria apenas o react-script-editor no diretório samples. https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-script-editor
Segui as instruções acima e o fiz funcionar quando meu arquivo .git / info / sparse-checkout tinha exatamente isso
samples / react-script-editor
fonte
Isso clonará uma pasta específica e removerá todo o histórico não relacionado a ela.
fonte
Para repositórios GitHub, você pode clonar qualquer subdiretório de qualquer repositório GitHub (em qualquer referência) usando https://github.com/HR/github-clone
fonte